2012-02-15 5 views

答えて

6

これは、通常はWeb.configファイルに依存します。

Web.Debug.configおよびWeb.Release.config(およびその他の構成のバリエーション)は、アプリケーションの展開時に使用されます。パブリッシュ操作を実行すると、展開中に変換がWeb.configファイルに適用されます。つまり、設定したデバッグ、リリース、およびその他の構成に対して特定の構成設定を適用できます。

通常、開発中にパブリッシュ操作を実行しない場合は、この設定を有効にするために、この設定をWeb.configファイルに適用する必要があります。

Web.configファイルの変換の詳細については、http://msdn.microsoft.com/en-us/library/dd465318.aspxを参照してください。

Web.configファイルにcustomErrors要素を追加する例については、http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspxを参照してください。

+0

Scott Hanselmanは、配備についての素晴らしいビデオと、web.configのデバッグバージョンとリリースバージョンを効果的に使用する方法について説明します。 http://channel9.msdn.com/Events/MIX/MIX10/FT14 –

+0

以下のようにタグを閉じる前に、web.configのを定義します。 Webサーバー> エラーが発生した場合、完全なエラーメッセージ(カスタムエラーではありません)が表示されます。 –

+2

タグの下に要素を配置します。また、コントローラアクション、または好ましくは静的なhtmlファイルのどちらかに、defaultRedirectを指定する必要があります。また、多くの人がカスタムエラーをオフにしてから、アプリケーションエラーハンドラでルーティングを処理しました。詳細については、http://stackoverflow.com/questions/6733064/how-do-i-display-custom-error-pages-in-asp-net-mvc-3を参照してください。 – devdigital

69

私の経験から、リリースモードでカスタムエラーをオンにし、デバッグでオフにする必要があります。これを自動的に行うには、次の例のようにweb.config変換を使用できます。

Web.Debug.config

この設定は、Webサーバーが有益なエラー情報が含まれているASP.NET黄色のページを表示することができます。

<customErrors mode="Off" xdt:Transform="Replace" /> 

Web.Release.config

一方で、我々は、ユーザーが技術的なエラーを知っている必要はありません。 ASP.NET黄色のページの代わりにカスタムエラーページを使用する必要があります。

<customErrors mode="On" xdt:Transform="Replace" /> 
+2

これは長い間受け入れられた回答としてマークされているはずです... –

+1

なぜ「RemoteOnly」ではないのですか?その後、XML変換を使用する必要はなく、開発者はWebサーバー上でサイトを表示する際にエラーを確認できます。 –

+0

ウェブサーバーからサイトを見るのが便利でないことがありますか? (あなたの意見にはメリットがありません..) –

4

リダイレクト用のエラーページをWeb.configに入れて作成します。 MVCでは、HandleErrorAttributeを持っていて、それをクラスにマークして、予期しないエラーをハンドラに記録し、それを記録し、エラーページをスローします。カスタムエラーは、既知のステータスコードを持つ特定のエラーのデフォルトページです。

関連する問題