2009-07-07 6 views
0

Je suis assez nouveau à la journalisation. Je reçois ce charabia dans mon journal des événements. La description de l'ID d'événement (0) dans la source (xyAMP) est introuvable. L'ordinateur local peut ne pas avoir les informations de Registre nécessaires ou les fichiers DLL de message pour afficher des messages à partir d'un ordinateur distant. Vous pourrez peut-être utiliser l'indicateur/AUXSOURCE = pour récupérer cette description; Voir Aide et support pour plus de détails. Les informations suivantes font partie de l'événement: SOURCE: System.WebComment puis-je obtenir un message d'erreur plus descriptif dans mon journal des événements?

Comment rendre ceci plus utile lors du diagnostic d'erreurs? Voici mon code d'enregistrement.

Sous Application_Error (expéditeur de ByVal comme objet, ByVal e comme EventArgs) Dim CTX 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 

Toutes les suggestions pour nettoyer ça?

Merci, ~ ck à San Diego

Répondre

-1

Je pense que vous devez utiliser le Message Compiler (MC.exe).

+0

Qu'est-ce que cela a à voir avec MC? –

+0

Je suis allé dans cette question en pensant que c'était un problème de MC, mais il semble que ce soit plus un problème d'enregistreur. Aucun conseil pour mes problèmes MC.exe peut être trouvé ici: P – Panky

0

Vous devez utiliser ex.ToString() pour obtenir l'exception complète, ainsi que toutes les instances d'exception internes. Cela vous dira tout ce que l'exception veut que vous sachiez, en général. La seule autre chose que vous pouvez faire est d'écrire du code pour afficher les détails de chaque exception qui a ces détails. Par exemple, la classe WebException a une propriété Response qui vous donnera toutes les informations sur la réponse, et une propriété Status qui vous donnera une idée si le Response vous sera utile. Le SqlException a beaucoup de détails, y compris une liste de toutes les erreurs générées par votre requête. Vous pouvez écrire du code spécial qui traduira ces détails en texte. Et, BTW, vous devriez vraiment utiliser la classe StringBuilder pour les concaténations de chaînes lorsque vous en utilisez autant. C'est beaucoup plus efficace.

Questions connexes