代码之家  ›  专栏  ›  技术社区  ›  Rasmus Faber

当ASP.NET处理未处理的异常时,事件日志消息将展开

  •  1
  • Rasmus Faber  · 技术社区  · 15 年前

    如果我从ASP.NET引发未处理的异常,则会在事件日志中添加警告(如预期的那样)。

    如果消息是

    Could not find foo%20bar
    

    事件日志将被读取

    Could not find foohttp://localhost/testpage.aspxbar
    

    消息似乎是通过途中的某个printf语句传递的。

    编辑:

    如果查看事件日志中详细信息下的XML视图,我会看到:

    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
      <Provider Name="ASP.NET 2.0.50727.0" /> 
      <EventID Qualifiers="32768">1309</EventID> 
      <Level>3</Level> 
      <Task>3</Task> 
      <Keywords>0x80000000000000</Keywords> 
      <TimeCreated SystemTime="2009-06-26T11:10:09.000Z" /> 
      <EventRecordID>130253</EventRecordID> 
      <Channel>Application</Channel> 
      <Computer>XXX</Computer> 
      <Security /> 
    </System>
    <EventData>
      <Data>3005</Data> 
      <Data>An unhandled exception has occurred.</Data> 
      <Data>26-06-2009 13:10:09</Data> 
      <Data>26-06-2009 11:10:09</Data> 
      <Data>525e4e8df6ec432d9a9b9b77e9ded580</Data> 
      <Data>6</Data> 
      <Data>1</Data> 
      <Data>0</Data> 
      <Data>ecd2c9a5-1-128904882075773124</Data> 
      <Data>Full</Data> 
      <Data>/WebSite1</Data> 
      <Data>C:\Users\XXX\Documents\Visual Studio 2008\WebSites\WebSite1\</Data> 
      <Data>XXX</Data> 
      <Data /> 
      <Data>6404</Data> 
      <Data>WebDev.WebServer.EXE</Data> 
      <Data>XXX</Data> 
      <Data>Exception</Data> 
      <Data>Foo%20Bar</Data> 
      <Data>http://localhost:6594/WebSite1/Default.aspx</Data> 
      <Data>/WebSite1/Default.aspx</Data> 
      <Data>127.0.0.1</Data> 
      <Data>XXX</Data> 
      <Data>True</Data> 
      <Data>NTLM</Data> 
      <Data>XXX</Data> 
      <Data>4</Data> 
      <Data>XXX</Data> 
      <Data>False</Data> 
      <Data>at _Default.Page_Load(Object sender, EventArgs e) at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</Data> 
    </EventData>
    </Event>
    

    这个看起来不错。因此,问题可能出在事件查看器中。什么样的逻辑将XML事件数据转换为General下的格式化数据?

    1 回复  |  直到 15 年前
        1
  •  1
  •   John Saunders    15 年前

    除非其他人知道,否则我不得不说这听起来像一个bug。

    如果是,请在 http://connect.microsoft.com/visualstudio/