web-dev-qa-db-ja.com

IIS7 HTTPエラー処理をオフにしますか?

参加しているコンテストのために、最初のWindows Server 2008/IIS7.5サーバーでセットアップを開始しました。エラー処理を完全にオフにするの方法を一生理解できません。私が見る唯一のオプションは次のとおりです。

  • カスタム
  • 詳細
  • 詳細なローカル、リモート用のカスタム

この機能を完全にオフにしたいのですが、それを行う方法がわかりません。私は何かが足りないのですか?

私の状況:

RESTful PHPフレームワークがあり、例外をキャッチし、例外がまだ処理されていない場合はHTTP 500ステータスを発行します。次に、指定された例外メッセージを応答本文に入れて、ブラウザーに送信します。 。これはApacheでは正常に機能します。正しいヘッダーが送信され、メッセージがユーザーに表示されます。ただし、IISでは、4xxおよび5xx HTTPステータスコードの応答が常に傍受され、他の準備されたメッセージまたはHTMLファイルが挿入されます。それはまさに私がもうやりたくないことです。助けてください!

35
Vance Lucas

さらに広範囲に検索した後、私はここで答えを見つけました:

http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx

解決策は、このカスタム「httpErrors」エントリを使用してweb.configファイルを手動で編集することです。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors existingResponse="PassThrough" />
    </system.webServer>
</configuration>

ただし、IIS 7.0 "ロックダウン"機能により、 "この構成セクションはこのパスでは使用できません。これは、セクションがでロックされている場合に発生します。親レベル。 "エラー。これを解決するには、コマンドプロンプトで次を実行します。

cd C:\Windows\System32\inetsrv

appcmd unlock config /section:httpErrors
69
Vance Lucas

IISマネージャー->サイト->エラーページ]で、各エラーページを右クリックし、[削除]を選択します。

残念ながら、IISスクリプト側から干渉しないように指示する方法はないため、展開の問題は常に厄介です。

2
bobince