2009-06-26 5 views
1

Wenn ich eine nicht behandelte Ausnahme aus ASP.NET ausspreche, wird (wie erwartet) eine Warnung zum Ereignisprotokoll hinzugefügt.Ereignisprotokollmeldungen werden erweitert, wenn nicht behandelte Ausnahmen von ASP.NET verarbeitet werden.

Aber wenn die Nachricht in der Ausnahme einer% enthält, wird die Nachricht in der eventlog verstümmelt:

Wenn die Nachricht

Could not find foo%20bar 

der eventlog

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

Andere werden gelesen wurde numerische Werte nach dem% werden in andere Zeichenfolgen konvertiert.

Es sieht so aus, als würde die Nachricht irgendwo auf dem Weg durch eine printf-Anweisung weitergeleitet.

Ist dies pro Design? Gibt es eine Möglichkeit, dies zu vermeiden (abgesehen davon, dass Ausnahmen behandelt werden)?

EDIT:

Wenn ich an der XML-Ansicht unter Details im eventlog sehen, ich sehe:

<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> 

Das sieht gut aus. Es sieht so aus, als ob das Problem in der Ereignisanzeige liegt. Welche Logik konvertiert die XML-Ereignisdaten in die formatierten Daten unter Allgemein?

Antwort

1

Wenn jemand anders nichts anderes weiß, muss ich sagen, dass das wie ein Fehler klingt.

Wenn ja, dann melden Sie dies bitte unter http://connect.microsoft.com/visualstudio/. Bitte suchen Sie zuerst, ob es bereits gemeldet wurde. Bearbeiten Sie dann Ihre Frage, um die URL des Fehlerberichts einzuschließen. Auf diese Weise kann jeder, der dies liest, darüber abstimmen, wie wichtig es ist, dass dieser Bug behoben werden kann.

+0

Ich habe es auf https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=470598 –

+0

Microsoft haben jetzt den Fehler bestätigt und eine Korrektur für ASP.NET 4.0 versprochen. –

+0

Ausgezeichnet! So soll es funktionieren! –