2009-07-07 3 views
0

Ich bin ziemlich neu im Loggen. Ich bekomme dieses Jibberish in meinem Ereignisprotokoll. Die Beschreibung für Event ID (0) in Quelle (xyAMP) kann nicht gefunden werden. Der lokale Computer verfügt möglicherweise nicht über die erforderlichen Registrierungsinformationen oder Nachrichten-DLL-Dateien zum Anzeigen von Nachrichten von einem Remotecomputer. Sie können möglicherweise das Flag/AUXSOURCE = verwenden, um diese Beschreibung abzurufen. Weitere Informationen finden Sie unter Hilfe und Support. Die folgenden Informationen sind Teil des Ereignisses: SOURCE: System.WebWie kann ich in meinem Ereignisprotokoll eine aussagekräftigere Fehlermeldung erhalten?

Wie kann ich dies hilfreich bei der Diagnose von Fehlern machen. Hier ist mein Logging-Code.

Sub Application_Error (ByVal Absender als Gegenstand, ByVal e As EventArgs) Dim ctx Wie Httpcontext = HttpContext.Current

Dim ex As Exception = ctx.Server.GetLastError() 

    Dim data As String = String.Empty 
    Dim referer As String = IIf(ctx.Request.ServerVariables("HTTP_REFERER") IsNot Nothing, ctx.Request.ServerVariables("HTTP_REFERER").ToString(), String.Empty) 
    Dim sForm As String = IIf(ctx.Request.Form IsNot Nothing, ctx.Request.Form.ToString(), String.Empty) 
    Dim sQuery As String = IIf(ctx.Request.QueryString IsNot Nothing, ctx.Request.QueryString.ToString(), String.Empty) 

    data = "SOURCE: " + ex.Source + vbCrLf 
    data += "MESSAGE: " + ex.Message + vbCrLf 
    data += "FORM: " + sForm + vbCrLf 
    data += "QUERYSTRING: " + sQuery + vbCrLf 
    data += "TARGETSITE: " + ex.TargetSite.ToString() + vbCrLf 
    data += "STACKTRACE: " + ex.StackTrace + vbCrLf 
    data += "REFERRER: " + referer 

    Dim eventLogName As String = "xyAMPLog" 
    Dim sourceName As String = "xyAMP" 

    Dim xyAMPLog As New EventLog() 
    xyAMPLog.Log = eventLogName 
    xyAMPLog.Source = sourceName 


    Try 
     xyAMPLog.WriteEntry(data, EventLogEntryType.Error) 

    Catch exc As Exception 
     Console.WriteLine(exc.Message) 
    End Try 

    'ctx.Server.ClearError() 


End Sub 

Irgendwelche Vorschläge, dies zu bereinigen?

Danke, ~ ck in San Diego

Antwort

-1

Ich glaube, Sie die Message Compiler (MC.exe) verwenden müssen.

+0

Was hat das mit MC zu tun? –

+0

Ich ging auf diese Frage in der Annahme, dass es ein MC-Problem war, aber es sieht so aus, als ob es eher ein Problem mit dem Logger ist. Keine Tipps für meine MC.exe Probleme finden Sie hier: P – Panky

0

Sie müssen ex.ToString() verwenden, um die vollständige Ausnahme zusammen mit allen inneren Ausnahmeinstanzen zu erhalten. Dies wird Ihnen alles sagen, was die Ausnahme im allgemeinen wissen will.

Die einzige andere Sache, die Sie tun können, ist Code zu schreiben, um die Details jeder Ausnahme anzuzeigen, die solche Details hat. Zum Beispiel hat die WebException Klasse eine Response Eigenschaft, die Ihnen alle Informationen über die Antwort geben wird, und eine Status Eigenschaft, die Ihnen eine Vorstellung davon gibt, ob die Response nützlich sein wird. Die SqlException enthält viele Details, einschließlich einer Liste aller Fehler, die von Ihrer Abfrage generiert wurden. Sie können Sonderfallcode schreiben, der diese Details in Text übersetzt.

Und, BTW, sollten Sie wirklich die StringBuilder Klasse für String-Verkettungen verwenden, wenn Sie so viele verwenden. Es ist viel effizienter.