gpt4 book ai didi

c# - Global.asax中的Application_Error自定义错误处理程序

转载 作者:行者123 更新时间:2023-12-03 08:46:16 24 4
gpt4 key购买 nike

我想从Global.asax中检测并重定向自定义错误。返回200 OK或为空。我不确定如何自动检测并重定向到错误。我希望你们有一个主意。

在Web.Config中

<system.web>
<customErrors mode="On" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>

在Global.asax中
protected void Application_Error(object sender, EventArgs e)
{
Response.TrySkipIisCustomErrors = true;

Exception ex = Server.GetLastError();

if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 200)
{
errormessage = ex.Message;
Response.RedirectToRoute("error");
}
else if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 400)
{
errormessage = ex.Message;
Response.RedirectToRoute("error");
}
else if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 404)
{
errormessage = ex.Message;
Response.RedirectToRoute("error");
}
else if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 500)
{
errormessage = ex.Message;
Response.RedirectToRoute("error");
}
else
{
errormessage = ex.Message;
Response.RedirectToRoute("error");
}
Server.ClearError();
}

最佳答案

好,

我为我的问题找到了临时解决方案。这不是最好的,但您可能需要它。

在Web.Config中

<system.web>
<customErrors mode="On" /> // On or Off doesn't matter ISS 7 or newer version
</system.web>
<system.webServer>
<httpErrors existingResponse="Auto">
<clear/>
<error statusCode="404" path="/notfound.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>

在Global.asax中
HttpException httpexception = Server.GetLastError().GetBaseException() as HttpException;
string ex_message = httpexception.InnerException;
// send or save errors here
Server.ClearError();
Response.Redirect("error");

注意:我没有从代码隐藏中处理404错误,web.configuration对此有所帮助。

关于c# - Global.asax中的Application_Error自定义错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53264933/

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