从Elmah收到多个电子邮件错误

时间:2015-12-29 01:37:24

标签: asp.net elmah

2我的ASP.NET网页.NET 4.0应用程序。在将应用程序升级到.NET 4.0之前,我使用了Enterpriselibrary来记录并通过电子邮件发送错误,但自从升级后,EnterpriseLibrary日志记录已停止记录,因此我决定切换到Elmah。

我的应用程序的web.config文件的一部分:

<add name="ErrorHandler" type="myWebApp.ErrorHandlingModule, myWebApp" preCondition="managedHandler" />
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />

如您所见,那里已经存在Errorhandling模块(ErrorHandlingModule),它会创建一个自定义错误消息(以下代码中的“ex”对象)。最初在ErrorHandlingModule中:

try
            {
                ExceptionPolicy.HandleException(ex, "myWebApp Error Handling");
            }
            catch (Exception exApplicationBlockError)
            {
                try
                {

                    EventLog log = new EventLog("Application");
                    log.Source = "Application Error";
                    log.WriteEntry(exApplicationBlockError.ToString(), EventLogEntryType.Error);
                }
                catch
                {
                }
            }

因为我切换到Elmah:

 try
            {
                //ExceptionPolicy.HandleException(ex, "myWebApp Error Handling");

                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);                
            }
            catch (Exception exApplicationBlockError)
            {
                try
                {

                    EventLog log = new EventLog("Application");
                    log.Source = "Application Error";
                    log.WriteEntry(exApplicationBlockError.ToString(), EventLogEntryType.Error);
                }
                catch
                {
                }
            }

它的效果非常好,但现在的问题是,如果有任何错误,它会引发2个错误电子邮件:一个是自定义的,另一个是默认的Elmah;当然我只想要自定义的。

我没有在程序中添加任何额外的Elmah ErrorFilter,但我需要在我的电子邮件中添加自定义异常。

我应该添加自定义Elmah过滤器来过滤掉所有异常,以便Elmah不会向我发送默认错误电子邮件吗? (或任何其他建议?)

如果有任何帮助,还可以在web.config文件中附加elmah配置:

 <elmah>        
    <security allowRemoteAccess="false" />
    <errorMail from="xxxx@myorg.au"  to="xxxxx@myorg.au"  subject="myWebApp error"  async="true" />
  </elmah>

提前致谢。节日快乐!

2 个答案:

答案 0 :(得分:0)

如果您不希望Elmah发送电子邮件,那么请不要将其配置为首先执行此操作。删除模块配置:

<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah">

与任何其他ErrorMail Elmah电子邮件相关的配置,例如

<errorMail from="xxxx@myorg.au" to="xxxxx@myorg.au" subject="myWebApp error" async="true" />

答案 1 :(得分:0)

愚蠢的我,我不应该包括: 。Elmah.ErrorSignal.FromCurrentContext()提高(前); 这就是电子邮件发送两次的原因。但感谢您的帮助。

相关问题