0

私はロギングにかなり慣れていません。イベントログにこのジブリッシュが表示されます。ソース ( xyAMP ) のイベント ID ( 0 ) の説明が見つかりません。ローカル コンピュータに、リモート コンピュータからのメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがない可能性があります。/AUXSOURCE= フラグを使用してこの説明を取得できる場合があります。詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です: SOURCE: 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

4

2 に答える 2

0

ex.ToString()すべての内部例外インスタンスとともに、完全な例外を取得するために使用する必要があります。これにより、一般的に、例外が知りたいことがすべてわかります。

他にできることは、そのような詳細を持つ各例外の詳細を表示するコードを作成することだけです。たとえば、WebExceptionクラスにはResponse、応答に関するすべての情報を提供するプロパティと、が役立つStatusかどうかを示すプロパティがあります。ResponseにはSqlException、クエリによって生成されたすべてのエラーのリストなど、多くの詳細があります。これらの詳細をテキストに変換する特別なケースのコードを書くことができます。

そして、ところで、非常にStringBuilder多くの文字列を使用している場合は、文字列の連結にクラスを実際に使用する必要があります。それははるかに効率的です。

于 2010-01-11T03:09:10.160 に答える
-1

Message Compiler (MC.exe)を使用する必要があると思います。

于 2009-07-07T17:09:28.880 に答える