asp.netにWebアプリケーションがあります。カスタム エラー ページを実装する必要があります。エラーが発生したかどうかを意味します(実行時)。errorpage.aspx に例外とスタック トレースを表示する必要があります。マスター ページまたはページ レベルで処理する必要があります。
<customErrors mode="On" defaultRedirect="~/Error_Page.aspx"></customErrors>
asp.netにWebアプリケーションがあります。カスタム エラー ページを実装する必要があります。エラーが発生したかどうかを意味します(実行時)。errorpage.aspx に例外とスタック トレースを表示する必要があります。マスター ページまたはページ レベルで処理する必要があります。
<customErrors mode="On" defaultRedirect="~/Error_Page.aspx"></customErrors>
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;
}
HTTP を破壊するため、エラー メッセージを表示する手段としてリダイレクトを使用しないでください。エラーが発生した場合、サーバーが 200 OK 応答への 301 リダイレクトではなく、適切な 4xx または 5xx 応答を返すことは理にかなっています。Microsoft がこのオプションを ASP.NET のカスタム エラー ページ機能に追加した理由はわかりませんが、幸いなことに、それを使用する必要はありません。
IIS マネージャーを使用して web.config ファイルを生成することをお勧めします。エラーの処理については、Global.asax.cs
ファイルを開いて のメソッドを追加しApplication_Error
、その中から呼び出しServer.GetLastError()
ます。
素敵な UI でエラーを表示するには、Elmah dll を使用します。この DLL を使用してログを維持できます。
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
}
Server.GetLastError; を使用してエラーにアクセスできます。
var exception = Server.GetLastError();
if (exception != null)
{
//Display Information here
}