0

ここに画像の説明を入力してください Webサイトの例外をアプリケーションイベントログに書き込もうとしています。さまざまな方法を試しましたが、非常に多くの投稿が表示されましたが、それでもできません。誰かがこれをしようとして私を助けてください。これが私のコードです

public class CustomHandleErrorAttribute : ActionFilterAttribute

{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        {
            // Bail if we can't do anything; app will crash.
            if (filterContext == null)
                return;
            // since we're handling this, log to ELMAH(Error logging modules and handler)

            var ex = filterContext.Exception ?? new Exception("No further information exists.");
            WriteToEventLog(ex);

            filterContext.ExceptionHandled = true;
            var data = new ErrorPresentation
            {
                ErrorMessage = HttpUtility.HtmlEncode(ex.Message),
                TheException = ex,
                ShowMessage = filterContext.Exception != null,
                ShowLink = false
            };

           filterContext.Result = new ViewResult
                                      {
                                          ViewName = "~/Views/Home/ErrorPage.aspx"
                                      };
         }
    }

    public void WriteToEventLog(Exception exception)
    {
        // todo : now I need to write this exception to Event log

        String cs = "FailureAudit";
        var thisMachineName = "abc";
        var logName = "Application";

        EventLog eventLog = new EventLog(logName, thisMachineName);
        if (!EventLog.SourceExists(logName))
        {
            EventLog.CreateEventSource(logName, logName);

        }
        eventLog.Source = cs;
        eventLog.EnableRaisingEvents = true;
        //eventLog.WriteEntry( exception.ToString(), EventLogEntryType.Error);
        eventLog.WriteEntry(exception.ToString());

    }
}
4

1 に答える 1

1

自分のマシンで以下のcmd(管理者権限付き)を実行しました。今すぐアプリケーションのイベントログに書き込むことができます。

eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYSOURCE /D "MY-SOURCE"

提案とコメントをありがとう。

于 2013-01-23T16:32:15.727 に答える