独自のエラーハンドラを持つアプリケーションを実行しています。開発環境でテスト中にエラーページが正しく表示されます(エラーページが正しく表示されます)。
本番IIS上で同じコードが使用されても、エラーページが置き換えられます。 問題はhereと記載されています。IIS 7.0でカスタムエラーページが表示されない
コードを変更する代わりに、web.configファイルにこの設定を書き込む方法がありますか?
独自のエラーハンドラを持つアプリケーションを実行しています。開発環境でテスト中にエラーページが正しく表示されます(エラーページが正しく表示されます)。
本番IIS上で同じコードが使用されても、エラーページが置き換えられます。 問題はhereと記載されています。IIS 7.0でカスタムエラーページが表示されない
コードを変更する代わりに、web.configファイルにこの設定を書き込む方法がありますか?
敬称(+1)ですが、さらに:IIS 7には、あなたがリンクしたブログ投稿とthis MSDN articleに記載されている特別な処理があります。あなたのアクションでHandleErrorAttributeを使用している場合は、これはすでに実行されています。そうでない場合は、
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
...自分で設定する必要があります。
デバッグモードを設定するにはアプリケーションのWeb.configファイル内の設定があります:
デフォルトは次のとおりです。
<customErrors mode="RemoteOnly" />
は注意してください(「オフ」にそれを設定してみてください:値は大文字と小文字が区別されます!)
<customErrors mode="Off" />
この設定はIIS7で尊敬されている場合、私はわからないんだけど、あなたが展開から開発環境で異なる動作を参照するので、これは私の拳の推測でした。このような場合には、その可能性がある場合は、ネットワーク内の別のマシンからdevアプリケーションを実行してみてください。
私は試しましたが、動作しませんでした。 .configファイルにはいくつかのサーバー設定も含まれていましたが、IISは何とかそれらを無視していました。 –
http://stackoverflow.com/questions/2480006/what-is-the-difference-between-customerrors-and-httperrors –
まあ、IIS 7にカスタムページを表示させるには、web.configファイルに次の行を追加する必要があることが判明しました。 system.webServerセクション
<httpErrors errorMode="Detailed"> <!-- this is impornant -->
<!-- Some custom error pages url go here -->
</httpErrors>
に入れ
私は<system.webServer>
セクションでは、要求を通過させることができることが分かりました。その後、私のアプリは私のカスタムページを表示することができます。あなたはWeb.Config
にこれらの行を使用することができます。
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
ます。また、拡張版を読むことができますWhat to expect from IIS7 custom error moduleを知っています。
この設定の理由は何ですか? –
明らかに、私はマイクロソフトの話をしません。私は彼らの動機だけを推測することができます。私の野生の推測では、ユーザーは実際のエラーメッセージを「怖い」と考えている。したがって、IEの偽のエラーページ、およびこの機能。したがって、おそらく、MVCアプリケーションに表示しているページです。ユーザーフレンドリなエラーメッセージを既に提供していることをIISに伝えるだけで済みますので、気にする必要はありません。 –