gpt4 book ai didi

c# - 如何为所有其他运行时错误添加一般错误页面?

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:36 25 4
gpt4 key购买 nike

我正在尝试调整

 <customErrors mode="On" defaultRedirect ="~/System/err.aspx">
</customErrors>

在 web.config 文件中

因此,每当任何页面出现运行时错误或任何类型错误时,错误消息不应显示在该页面上,而应将其重定向到 err.aspx 页面。

Is there any such configuration.

最佳答案

(1) 您所遵循的方法是正确的。你需要为不同类型的错误指定不同的错误页面(如果你想以不同的方式处理不同的错误类型)就像 nadeem 提到的,

(2) 第二种方法是在 Global.asax 中使用 Application_Error,如下所示:

void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs

// Get the exception object.
Exception exc = Server.GetLastError();


// For other kinds of errors give the user some information
// but stay on the default page
Response.Write("<h2>Global Page Error</h2>\n");
Response.Write(
"<p>" + exc.Message + "</p>\n");
Response.Write("Return to the <a href='Default.aspx'>" +
"Default Page</a>\n");
// Clear the error from the server
Server.ClearError();
}

(3) 第三种方法是同时使用 Application_Error 和自定义错误页面。使用 Application_Error 获取异常详细信息并将其传递给错误页面,例如,

protected void Application_Error(object sender, EventArgs e)
{
Exception err = Server.GetLastError();
Session.Add("LastError", err);
}

void Session_Start(object sender, EventArgs e)
{
Session["LastError"] = ""; //initialize the session
}

在错误页面中:

 protected void Page_Load(object sender, EventArgs e)
{
Exception err = Session["LastError"] as Exception;
//Exception err = Server.GetLastError();
if (err != null)
{
err = err.GetBaseException();
lblErrorMsg.Text = err.Message;
lblSource.Text = err.Source;
lblInnerEx.Text = (err.InnerException != null) ? err.InnerException.ToString() : "";
lblStackTrace.Text = err.StackTrace;
Session["LastError"] = null;
}
}

关于c# - 如何为所有其他运行时错误添加一般错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com