2012-01-18 3 views

答えて

0

VS 2010でconfigトランスフォームを使用するソリューションが見つかりました。<errorMail />タグをベースweb.configから削除し、変換タグ付きのWeb.Qa.ConfigとWeb.Release.Configに追加しました。パブリッシュすると、リモートマシンはローカルでは抑制されている間に電子メールを送信できます。

0

私はあなたがこれを行うことができると確信しています。ただfilter outgoing error emails。もちろん、それがリモートでホストされていることを示すいくつかの設定を使用してください。 または、2つの異なるweb.configを持ち、 "dev one"にエミュレーションがオフになっていることを確認してください。

1

私は同じ問題を抱えていましたが、ローカルとリモートのweb.configsを別々にするというアイデアを拒否しました。ソースコントロールでうまく動作しないからです(ただし下記のコメントを参照)。

代わりに、私はELMAH使用する各サイトでGlobal.asaxファイルにこれを追加しました:次のように

void ErrorMail_Mailing(object sender, ErrorMailEventArgs e) 
{ 
    e.OnErrorMailing(); // Prevent local machine errors from being mailed to the rest of the team 
} 

OnErrorMailing()当社のウェブライブラリで宣言された拡張メソッドは次のとおりです。の

/// <summary> 
    /// Prevent local machine errors from being mailed to the rest of the team. Feel free to add your own machine names/case blocks here 
    /// </summary> 
    public static void OnErrorMailing(this ErrorMailEventArgs e) 
    { 
     switch (e.Error.HostName.ToLower()) 
     { 
      case "mymachinename": 
       e.Mail.To.Clear(); 
       e.Mail.To.Add("MYEMAILADDRESS"); 
       break; 
     } 
    } 

もちろん、Elmahを使用するサイトが1つしかない場合や、コードの重複を気にしない場合は、そのコードをglobal.asaxに直接入れることができます。

もっと洗練されたソリューションはありますが、これは私には間違いありません。ローカルマシンからの例外を受け取るだけで、プロダクションの例外はweb.configで設定された電子メールアドレスに送られます。

+1

VS 2010でconfigトランスフォームを使用するという解決策が見つかりました。私はベースのweb.configから ''タグを削除し、それをWeb.Qa.ConfigとWeb.Release.Configに変換タグで追加しました。私が公開すると、リモートマシンはメールがローカルに送信されている間にメールを送信することができます。私はこのルートに行くつもりですが、私はあなたの答えがいくつかupvotesを取得し、それに基づいて答えとしてマークします。 – oscilatingcretin

+0

私はデュアルweb.configソリューションについて知りませんでした。私はそれについてのScottGuの記事があることを知っているhttp://weblogs.asp.net/scottgu/archive/2007/09/21/tip-trick-automating-dev-qa-staging-and-production-web-config-settings- with-vs-2005.aspxを参照してください。私がこのような解決策を必要とした唯一の時は、上記のシナリオで、debug = trueをローカルではあるが、プロダクションではなく、machine.configにdeployment retail = "true"を入れて解決したいときでした。しかし、私はあなたのコメントを+1するので、上記の情報がいつか便利になると確信しています。 –

0

Web.configファイル

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
      <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

を変更することで、電子メールではなく、SMTPサーバーのローカルマシン上のピックアップフォルダに移動していたり​​、あなたのdevの上ご使用のMachine.config設定でこれを置くことができますWeb.configファイルに触れないでください。

関連する問題