2

私は SQL Server 2008 で ASP.NET アプリケーションに取り組んでいます。さまざまな理由でユーザーがサイトでエラーを生成することがあります。エラーを生成した元の要求を取得して、それを再生または作成できると非常に便利です。テストの一部。

イベント ビューアーでエラーを検索することはよく知っていますが、要約では「使用しようとした特殊文字は何ですか?」などの十分な情報が得られないことがわかりました。

これは可能ですか?どうすればわかりますか?

4

2 に答える 2

7

Elmah エラー ログを使用できます。無料でエラーをうまく処理でき、多くの有用な情報が表示されます。エラーが発生したときにメールを送信するように設定できます。

URL: https://code.google.com/p/elmah/

于 2013-08-27T07:06:24.367 に答える
5

私の知る限り、これを行うデフォルトの方法はありません。この情報を取得してデータベースに保存したり、電子メールで管理者に送信したりできるようにするには、アプリケーションに追加のログを追加する必要があります。

Global.asax の Application_Error メソッドを変更してみてください

ここでいくつかの情報を収集する方法を示します。これをさらに変更して、ニーズに合わせることができます

void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs
    // At this point we have information about the error
    HttpContext ctx = HttpContext.Current;

    Exception exception = ctx.Server.GetLastError();

    //Error message that will be emailed
    string errorInfo =
        "<br><b>Time:</b> " + DateTime.Now.ToString() +
        "<br><b>Offending URL:</b> " + ctx.Request.Url.ToString() +
        "<br><b>Referring URL:</b> " + ctx.Request.UrlReferrer.ToString() +
        "<br><br><b>Query String:</b> " + ctx.Request.QueryString.ToString() +
        "<br><br><b>IP Address:</b> " + ctx.Request.UserHostAddress +
        "<br><br><b>Form:</b> " + ctx.Request.Form.ToString() +
        "<br><br><b>Source:</b> " + exception.Source +
        "<br><br><b>Message:</b> " + exception.Message +
        "<br><br><b>Stack trace:</b> " + exception.StackTrace;
}
于 2013-07-18T08:57:52.353 に答える