2009-08-18 16 views
13

独自のエラーハンドラを持つアプリケーションを実行しています。開発環境でテスト中にエラーページが正しく表示されます(エラーページが正しく表示されます)。
本番IIS上で同じコードが使用されても、エラーページが置き換えられます。 問題はhereと記載されています。IIS 7.0でカスタムエラーページが表示されない

コードを変更する代わりに、web.configファイルにこの設定を書き込む方法がありますか?

答えて

13

敬称(+1)ですが、さらに:IIS 7には、あなたがリンクしたブログ投稿とthis MSDN articleに記載されている特別な処理があります。あなたのアクションでHandleErrorAttributeを使用している場合は、これはすでに実行されています。そうでない場合は、

filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; 

...自分で設定する必要があります。

+0

この設定の理由は何ですか? –

+2

明らかに、私はマイクロソフトの話をしません。私は彼らの動機だけを推測することができます。私の野生の推測では、ユーザーは実際のエラーメッセージを「怖い」と考えている。したがって、IEの偽のエラーページ、およびこの機能。したがって、おそらく、MVCアプリケーションに表示しているページです。ユーザーフレンドリなエラーメッセージを既に提供していることをIISに伝えるだけで済みますので、気にする必要はありません。 –

4

デバッグモードを設定するにはアプリケーションのWeb.configファイル内の設定があります:

デフォルトは次のとおりです。

<customErrors mode="RemoteOnly" /> 

は注意してください(「オフ」にそれを設定してみてください:値は大文字と小文字が区別されます!)

<customErrors mode="Off" /> 

この設定はIIS7で尊敬されている場合、私はわからないんだけど、あなたが展開から開発環境で異なる動作を参照するので、これは私の拳の推測でした。このような場合には、その可能性がある場合は、ネットワーク内の別のマシンからdevアプリケーションを実行してみてください。

+0

私は試しましたが、動作しませんでした。 .configファイルにはいくつかのサーバー設定も含まれていましたが、IISは何とかそれらを無視していました。 –

+0

http://stackoverflow.com/questions/2480006/what-is-the-difference-between-customerrors-and-httperrors –

8

まあ、IIS 7にカスタムページを表示させるには、web.configファイルに次の行を追加する必要があることが判明しました。 system.webServerセクション

<httpErrors errorMode="Detailed"> <!-- this is impornant --> 
<!-- Some custom error pages url go here --> 
</httpErrors> 
1

に入れ

私は<system.webServer>セクションでは、要求を通過させることができることが分かりました。その後、私のアプリは私のカスタムページを表示することができます。あなたはWeb.Configにこれらの行を使用することができます。

<system.webServer> 
    <httpErrors existingResponse="PassThrough" /> 
</system.webServer> 

ます。また、拡張版を読むことができますWhat to expect from IIS7 custom error moduleを知っています。

関連する問題