Как я могу получить более подробное сообщение об ошибке в моем журнале событий?

Я новичок в ведении журнала. Я получаю эту треп в моем журнале событий. Описание для события с кодом (0) в источнике (xyAMP) не найдено. На локальном компьютере может не быть необходимой информации реестра или файлов DLL сообщений для отображения сообщений с удаленного компьютера. Вы можете использовать флаг / AUXSOURCE = для получения этого описания; подробности см. в разделе «Справка и поддержка». Следующая информация является частью события: ИСТОЧНИК: System.Web

Как я могу сделать это более полезным при диагностике ошибок. Вот мой код регистрации.

Sub Application_Error (ByVal sender As Object, ByVal e As EventArgs) Dim ctx As 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

Есть предложения, чтобы очистить это?

Спасибо, ~ ck в Сан-Диего


person Hcabnettek    schedule 07.07.2009    source источник


Ответы (2)


Вам нужно использовать ex.ToString(), чтобы получить полное исключение вместе со всеми экземплярами внутренних исключений. Это расскажет вам все, что исключение хочет, чтобы вы знали в целом.

Единственное, что вы можете сделать, это написать код для отображения сведений о каждом исключении, в котором есть такие сведения. Например, у класса WebException есть _3 _ свойство, которое предоставит вам всю информацию об ответе, и _ 4_, которое даст вам представление о том, будет ли Response полезным. SqlException содержит много деталей, включая список всех ошибок, сгенерированных вашим запросом. Вы можете написать специальный код, который переведет эти детали в текст.

И, кстати, вам действительно следует использовать класс StringBuilder для конкатенации строк, когда вы используете их так много. Это намного эффективнее.

person John Saunders    schedule 11.01.2010

Я думаю, вам нужно использовать Компилятор сообщений (MC.exe ).

person ChrisW    schedule 07.07.2009
comment
При чем здесь MC? - person John Saunders; 11.01.2010
comment
Я задал этот вопрос, думая, что это проблема MC, но похоже, что это скорее проблема с регистратором. Здесь нет подсказок по поводу моих проблем с MC.exe: P - person Panky; 08.06.2011