2016-10-07 7 views
0

私は、例えば例外処理をオフにすることを好む5.MVCでデバッグモードでのWeb.configを設定する方法5私はC#MVCプロジェクトを開発しています

を開発する場合Global.asax.csに:

<system.web> 
    <!--<customErrors mode="Off"></customErrors> --> 
    <!-- or --> 
    <customErrors mode="On"> 
    <error statusCode="404" redirect="~/Home/NotFound"/> 
    </customErrors> 
</system.web> 

問題は、私はそれを手動で編集する必要があり、それが変更された場合、それはいいだろうということです。私のweb.configファイルで

#if !DEBUG 
    protected void Application_Error(object sender, EventArgs e) 
    { 
     Exception exception = Server.GetLastError(); 
     // save exception inf to DB 
     Server.ClearError(); 
     Response.Redirect("/Home/Error"); 
    } 
#endif 

私は2つのオプションがありますプログラムがデバッグ/リリースモードで実行されているときに自動的に実行されます。

私のプログラムでコードを変更する方法はありますか?

MyFunction() 
{ 
#if DEBUG 
    SetCustomError("mode", "Off"); 
#else 
// Keep web.config content 
#endif 
} 

そして、MVC構造で、私はそれを行うことができます。 は、私のような何かをしたいですか?

+0

*手動で編集する必要があります。*なぜこのようにしたいのですか? –

+0

私はこのようにはしません。私はエラーをクリアしてリダイレクトしないで 'Application_Error'メソッドで例外をデータベースに記録するように提案します。代わりに 'web.config'変換をセットアップして、アプリケーションをデバッグしている間にエラーの説明付きの通常のasp.net mvc診断ページを表示し、アプリケーションを実稼働環境にデプロイするときにエラーページを表示することができます。構成変換の詳細については、[このリンク](https://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/web-config-transformations)を参照してください。 –

+1

''を使用できませんか? –

答えて

0

指摘したように、Change Custom Error Mode in Web Config Programmatically in ASP.NET MVC 3はコード内のweb.configの設定をどのように変更できるかという質問に答えています。

コードの設定を変更するためにコードの匂いがあると主張する人もいます。私は同意しますが、ポイントは、コードがデバッグモードで実行されている場合にのみ実行する必要があるということです。生産中ではありません。

関連する問題