参加しているコンテストのために、最初のWindows Server 2008/IIS7.5サーバーでセットアップを開始しました。エラー処理を完全にオフにするの方法を一生理解できません。私が見る唯一のオプションは次のとおりです。
この機能を完全にオフにしたいのですが、それを行う方法がわかりません。私は何かが足りないのですか?
私の状況:
RESTful PHPフレームワークがあり、例外をキャッチし、例外がまだ処理されていない場合はHTTP 500ステータスを発行します。次に、指定された例外メッセージを応答本文に入れて、ブラウザーに送信します。 。これはApacheでは正常に機能します。正しいヘッダーが送信され、メッセージがユーザーに表示されます。ただし、IISでは、4xxおよび5xx HTTPステータスコードの応答が常に傍受され、他の準備されたメッセージまたはHTMLファイルが挿入されます。それはまさに私がもうやりたくないことです。助けてください!
さらに広範囲に検索した後、私はここで答えを見つけました:
解決策は、このカスタム「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
IISマネージャー->サイト->エラーページ]で、各エラーページを右クリックし、[削除]を選択します。
残念ながら、IISスクリプト側から干渉しないように指示する方法はないため、展開の問題は常に厄介です。