1

asp.netにWebアプリケーションがあります。カスタム エラー ページを実装する必要があります。エラーが発生したかどうかを意味します(実行時)。errorpage.aspx に例外とスタック トレースを表示する必要があります。マスター ページまたはページ レベルで処理する必要があります。

<customErrors mode="On" defaultRedirect="~/Error_Page.aspx"></customErrors>
4

5 に答える 5

4

global.asax で処理できます。

protected void Application_Error(object sender, EventArgs e)
{
   Exception ex = System.Web.HttpContext.Current.Error;
   //Use here
   System.Web.HttpContext.Current.ClearError();
   //Write custom error page in response
   System.Web.HttpContext.Current.Response.Write(customErrorPageContent);
   System.Web.HttpContext.Current.Response.StatusCode = 500;
}
于 2012-12-12T09:59:26.767 に答える
2

HTTP を破壊するため、エラー メッセージを表示する手段としてリダイレクトを使用しないでください。エラーが発生した場合、サーバーが 200 OK 応答への 301 リダイレクトではなく、適切な 4xx または 5xx 応答を返すことは理にかなっています。Microsoft がこのオプションを ASP.NET のカスタム エラー ページ機能に追加した理由はわかりませんが、幸いなことに、それを使用する必要はありません。

IIS マネージャーを使用して web.config ファイルを生成することをお勧めします。エラーの処理については、Global.asax.csファイルを開いて のメソッドを追加しApplication_Error、その中から呼び出しServer.GetLastError()ます。

于 2012-12-12T09:59:50.270 に答える
1

素敵な UI でエラーを表示するには、Elmah dll を使用します。この DLL を使用してログを維持できます。

于 2012-12-12T09:59:42.737 に答える
1

Global.asax で

void Application_Error(object sender, EventArgs e) 
{    
    Session["error"] = Server.GetLastError().InnerException; 
}
void Session_Start(object sender, EventArgs e) 
{      
    Session["error"] = null;
}

Error_Page Page_Load イベントで

if (Session["error"] != null)
{
    // You have the error, do what you want
}
于 2012-12-12T10:02:50.597 に答える
0

Server.GetLastError; を使用してエラーにアクセスできます。

var exception = Server.GetLastError();
  if (exception != null)
    {
       //Display Information here
    }

詳細については、HttpServerUtility.GetLastError メソッドを参照してください。

于 2012-12-12T09:58:51.150 に答える