【问题标题】:How to specify the Event Log Source where ASP.NET writes unhandled exceptions?如何指定 ASP.NET 写入未处理异常的事件日志源?
【发布时间】:2013-10-24 17:52:34
【问题描述】:

默认情况下,ASP.NET 将任何未处理的异常写入默认的ASP.NET X.Y.Z.0 事件日志源。是否可以指定特定应用程序的事件和异常必须记录在特定事件日志源中的任一配置?

原因是我希望与我的应用程序直接相关的所有问题都存储在单独的事件日志类别中,然后可以对其进行过滤。

【问题讨论】:

    标签: asp.net iis event-log


    【解决方案1】:

    我以前从未这样做过,但您可以使用 Global.Application_Error() method 并在其中使用类似这样的语法吗:

       Exception ex = Server.GetLastError().GetBaseException();
    
       //log to Event Log
       EventLog.WriteEntry("Whatever",
         "MESSAGE: " + ex.Message + 
         "\nSOURCE: " + ex.Source +
         "\nFORM: " + Request.Form.ToString() + 
         "\nQUERYSTRING: " + Request.QueryString.ToString() +
         "\nTARGETSITE: " + ex.TargetSite +
         "\nSTACKTRACE: " + ex.StackTrace, 
         EventLogEntryType.Error);
    

    【讨论】:

    • 这就是我如何创建自己的事件源来记录代码中的事件。我遇到的问题是我需要记录 ASP.NET 自己记录的异常(例如,web.config cannot be parsed 之类的错误)。
    • @Knaģis 好吧。我现在改变了我的答案,希望它可能会有所帮助,但我以前从未这样做过,所以我有点猜测:)
    • 新示例不适用于初始化应用程序时发生错误(如上述配置解析)和其他潜在低级错误的情况。
    • @Knaģis 好的,我放弃了。它对其他未处理的异常是否有效?
    • @Knaģis 你试图实现的声音对我来说就像你需要在 IIS 中配置的东西。
    猜你喜欢
    • 2011-08-08
    • 2023-01-30
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多