0

ヘルプ!

Application.Error イベントを処理するカスタム HttpModule があります。モジュールは機能しています...イベントログにメッセージを記録し、これらのメッセージをモジュールの最後まで見ることができます(カスタム応答を書き込んでresponse.flush()を呼び出した後)。大まかに言えば、このモジュールの目的は、エラーをログに記録し、丁寧なエラー メッセージをユーザーに表示することです (メッセージにエラーに関する有用な詳細が含まれる場合と含まれない場合があるように構成可能)。

アプリケーションの web.config で、<httpErrors errorMode="Detailed"> と <customErrors mode="Off" /> を構成しました。applicationHost.config で、<section name="httpErrors" overrideModeDefault="Allow" /> を構成しました。また、applicationHost.config で <httpErrors errorMode="Detailed"> を <location path="default web site/myvdir"> 要素の下に構成しました。

ただし、「死の黄色い画面」はまだ表示されています (ローカル リクエストとリモート リクエストの両方で)。

これは Win2008R2 の問題のようです... これはすべて win2008 で機能します (テスト環境をロードして試してみました)。x64 と x86 の関係ではないかと思います...しかし、Win2008R2 は x64 のみです...そして私の Win2008 テスト環境は x86 です。

私はこれをもう少し突っついてきました。Win2008 では、 <httpErrors errorMode="Detailed"> は関係ありません。カスタムエラーメッセージなしで表示されます。これにより、カスタム エラー メッセージが表示されます。Win2008R2 では、httpErrors/ErrorMode=Detailed に関係なく、同じ問題 (黄色の画面) が表示されます。

だから...おそらく私の本当の質問は、IIS7.5で <customErrors mode="Off" /> 設定が機能しない理由です。「オン」に設定すると、短いysodが取得され、「オフ」に設定すると、長いysodが取得されます(IIS7およびIIS6で発生するようなhttpハンドラーからのカスタムメッセージの代わりに)、「RemoteOnly」に設定されます短いysod。

半解決済み: アプリケーション プールがマネージド パイプライン モード: 統合に設定されました。これをクラシック モードに切り替えると、カスタム エラーの詳細を表示できます。これは、IIS7 (win2008 x86) が統合パイプラインと IIS7.5 (win2008r2 x64) でクラシック パイプラインを必要とする理由を説明していません。何かご意見は?

大変助かりました!!!

編集:xmlタグを修正し、より多くの情報を追加し、半解決

4

1 に答える 1

0

<customErrors>は asp.net ファイル拡張子専用で、他のすべての設定<httpErrors>も同様です: http://www.iis.net/ConfigReference/system.webServer/httpErrors

于 2012-06-25T03:57:56.253 に答える