0

global.asax ファイルの '404-File not found'エラーとサーバーのテキスト ファイルへの書き込みを除くすべてのエラーをキャッチしようとしていますが、FormatException エラー、Sessionout エラー、「Yellow Page of Error」など、多くのエラーが見逃されます。 」登場!

ここですべてのエラーをキャッチするにはどうすればよいですか。

void Application_Error(object sender, EventArgs e) 
{
    CT.Bussiness.DevCommonFunctions devTools = new CT.Bussiness.DevCommonFunctions();
    HttpContext ctx = HttpContext.Current;
    //ctx.Response.
    // Get page url
    if (ctx != null)
    {
        string pageName = ctx.Request.Url.ToString();

        Exception ex = Server.GetLastError().GetBaseException();
        HttpException checkException = (HttpException)ex;
        if (checkException.GetHttpCode() != 404)
        {
            string errorDate = DateTime.Now.ToString();
            //string pageName =pageName;
            string errorMessage = ex.Message;
            string errorSource = ex.Source;
            //string errorInnerException=ex.InnerException.ToString();
            string errorData = ex.Data.ToString();
            string errorTarget = ex.TargetSite.ToString();
            string errorStack = ex.StackTrace.ToString();
            devTools.WriteErrorsIntoErrorLog(errorDate, pageName, errorMessage, errorSource, "InnerException", errorData, errorTarget, errorStack);
            //devTools.SendErrorMail("developer3@devwebservices.net,developer4@devwebservices.net,developer5@devwebservices.net,hr@devwebservices.net", errorDate, pageName, errorMessage, errorSource, "InnerException", errorData, errorTarget, errorStack);
            //Response.TrySkipIisCustomErrors = true;
            Response.Redirect("~/Error.aspx");
            //Response.Redirect("Error.aspx");

        }
    }
}

解決した

以下のKPLのアドバイスに従って、次のようにフォローしました。

  1. エルマ実装
  2. 除外された Global.asax および
  3. web.config にリダイレクト コードを記述しました。

このように解決しました!

4

1 に答える 1

0

使用する:

1.) web.config の「customErrors」タグで「エラーのイエロー ページ」を回避します。

<customErrors mode="On" defaultRedirect="~/Error.aspx">
      <error statusCode="400" redirect="/error/400-bad-request/" />
      <error statusCode="404" redirect="/error/404-file-not-found/" />
      <error statusCode="500" redirect="/error/500-server-error/" />
</customErrors>

2.) また、Elmahを使用してエラーを記録してみてください。

ELMAH (Error Logging Modules and Handlers)は、完全にプラグ可能なアプリケーション全体のエラー ログ機能です。実行中の ASP.NET Web アプリケーション、またはマシン上のすべての ASP.NET Web アプリケーションに動的に追加でき、再コンパイルや再展開は必要ありません。

ELMAH を実行中の Web アプリケーションにドロップして適切に構成すると、コードを 1 行も変更せずに次の機能を利用できます。

  • ほぼすべての未処理の例外のログ。
  • 記録された例外のログ全体をリモートで表示する Web ページ。
  • ログに記録された 1 つの例外の完全な詳細 (色付きのスタック トレースを含む) をリモートで表示するための Web ページ。
  • 多くの場合、customErrors モードをオフにしても、特定の例外に対して ASP.NET が生成した元のイエロー スクリーンを確認できます。
  • エラー発生時の各エラーの電子メール通知。
  • ログからの最後の 15 個のエラーの RSS フィード。
于 2012-10-31T05:10:51.200 に答える