1

最近、IIS の Web アプリケーションがランダムに、時には 20 分ごとに再起動することに気付きました。イベント ログを確認したところ、次のようなさまざまなエラーが見つかりました。

  • レベル: エラー
  • ソース: .Net ランタイム
  • イベント ID: 1026

以下は、例外の詳細です。

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) を使用しています。以下は、<elmah>web.config の構成ノードです。

<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="true") で送信するように設定しています。これらがバックグラウンド スレッドで生成され、バックグラウンド スレッドでエラーが発生した場合、私が知る限り、プロセスは終了します。

何ができるか考えていますか?

IIS7 と ASP.Net MVC 4 を使用しています。

4

1 に答える 1

0

ELMAH に関連する Google Code の問題を提起したところ、開発者の 1 人から返信がありました。

基本的に、電子メールの件名は Elmah で内部的に使用string.Format()され、エラー メッセージ {0} とエラー タイプ {1} でフォーマットされているようです。私の場合、設定で指定した件名は次のとおりです。

{Error Encountered} Website_Name

{}FormatExceptionをトリガーする場所、したがって問題。中かっこは必要なかったので、これらを丸かっこに置き換えることで簡単に解決できました。{{andを実行することでそれらを回避できます}}が、私の場合は不要でした。

于 2013-08-23T16:26:08.630 に答える