最近,我注意到IIS中的Web应用程序正在随机重启,有时每20分钟重启一次。我检查了事件日志,发现了以下各种错误:
以下是例外情况:
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.FormatException
Stack:
at System.Text.StringBuilder.AppendFormat(System.IFormatProvider, System.String, System.Object[])
at System.String.Format(System.IFormatProvider, System.String, System.Object[])
at Elmah.ErrorMailModule.ReportError(Elmah.Error)
at Elmah.ErrorMailModule.ReportError(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
我正在使用最新稳定版的Elmah(1.2.2)。以下是web.config中的<elmah>
配置节点
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/errors/" />
<security allowRemoteAccess="1" />
<errorMail from="errors.visitgozo@casasoft-dev.com" to="errors@casasoft-dev" subject="{Error_Encountered} [Visit Gozo]"
async="true" smtpPort="25" smtpServer="mail.casasoft.com.mt" userName="errors@casasoft-automailer" password="RvjyBiyvePVVpcLBNgJ6" />
</elmah>
我将其设置为以async-mode(async =“true”)发送此类电子邮件。如果这些是在后台线程上生成的,并且在backgroung线程上发生错误,据我所知,该进程已终止。
任何想法可以做些什么?
我正在使用IIS7和ASP.Net MVC 4。
答案 0 :(得分:0)
我在与ELMAH相关的Google Code上提出issue,我得到了其中一位开发者的回复。
基本上,似乎电子邮件主题在Elmah内部使用string.Format()
格式化,错误消息为{0},错误类型为{1}。在我的例子中,我在设置中指定的主题是:
{Error Encountered} Website_Name
{}
触发FormatException,因此出现问题。通过用圆括号替换它们很容易解决,因为我不需要花括号。人们可以通过{{
和}}
来逃避它们,但就我而言,这是不必要的。