Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当ASP.NET处理未处理的异常时,事件日志消息将展开_.net_Asp.net_Iis_Event Log - Fatal编程技术网

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

当ASP.NET处理未处理的异常时,事件日志消息将展开,.net,asp.net,iis,event-log,.net,Asp.net,Iis,Event Log,如果我从ASP.NET引发未处理的异常,则会在事件日志中添加警告(如预期的那样) 但是,如果异常中的消息包含%,则事件日志中的消息将被篡改: 如果消息是 Could not find foo%20bar 事件日志将被读取 Could not find foohttp://localhost/testpage.aspxbar %后面的其他数值将转换为其他字符串 消息似乎是通过途中的某个printf语句传递的 这是每种设计的吗?有没有办法避免这种情况(除了确保处理异常之外) 编辑: 如果查看事件

如果我从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>

1309
3.
3.
0x8000000000000
130253
应用
XXX
3005
发生了未处理的异常。
26-06-2009 13:10:09 
26-06-2009 11:10:09 
525e4e8df6ec432d9a9b9b77e9ded580
6.
1.
0
ecd2c9a5-1-128904882075773124
满满的
/网站1
C:\Users\XXX\Documents\Visual Studio 2008\WebSite1\
XXX
6404
WebDev.WebServer.EXE
XXX
例外情况
Foo%20Bar
http://localhost:6594/WebSite1/Default.aspx 
/网站1/Default.aspx
127.0.0.1 
XXX
真的
NTLM
XXX
4.
XXX
假的
在System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)的System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)在System.Web.UI.Control.OnLoad(EventArgs e)在System.Web.UI.Control.LoadRecursive()的在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)

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

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


如果是这样,请在以下地址报告。请先搜索查看是否已报告。然后,编辑您的问题以包含bug报告的URL。这样,任何阅读本文的人都可以投票决定他们认为修复这个bug有多重要。

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


如果是这样,请在以下地址报告。请先搜索查看是否已报告。然后,编辑您的问题以包含bug报告的URL。这样,任何阅读本文的人都可以就他们认为修复此错误的重要性进行投票。

我已将其提交给Microsoft,并承诺修复ASP.NET 4.0。我已将其提交给Microsoft,并承诺修复ASP.NET 4.0。