2009-06-26 8 views
1

Si je lance une exception non gérée depuis ASP.NET, un avertissement est ajouté au journal des événements (comme prévu).Les messages du journal des événements sont développés lorsque des exceptions non gérées sont gérées par ASP.NET

Mais si le message à l'exception contient un%, le message dans le journal des événements obtient brouillé:

Si le message a été

Could not find foo%20bar 

le journal des événements va lire

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

Autre les valeurs numériques après le% seront converties en d'autres chaînes.

Il semble que le message soit passé à travers une instruction printf quelque part en cours de route.

Est-ce par dessin? Y at-il un moyen d'éviter cela (en plus de s'assurer que les exceptions sont traitées)?

EDIT:

Si je regarde le XML en vue de détails dans le journal des événements, je vois:

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

Cela ressemble bien. Il semble donc que le problème pourrait être dans l'Observateur d'événements. Quelle est la logique qui convertit les données d'événement XML en données formatées sous Général?

Répondre

1

À moins que quelqu'un d'autre ne sache le contraire, je dois dire que cela ressemble à un bogue.

Si oui, veuillez le signaler à http://connect.microsoft.com/visualstudio/. Veuillez d'abord effectuer une recherche pour voir si cela a déjà été signalé. Ensuite, modifiez votre question pour inclure l'URL du rapport de bogue. De cette façon, quiconque lit ceci peut voter sur l'importance de ce bogue.

+0

Je l'ai soumis à https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=470598 –

+0

Microsoft a maintenant reconnu le bogue et promis un correctif pour ASP.NET 4.0. –

+0

Excellent! C'est comme ça que ça doit marcher! –

Questions connexes