我已经设置了自定义错误页面,可以正常工作:
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="500" redirect="~/Pages/ErrorPages/500.aspx" />
</customErrors>
在500.aspx
:
Response.ClearContent();
Response.StatusCode = 500;
Exception = Server.GetLastError();
Code.Errors.Error.RecordNewError(ErrorType.InternalException, Exception, Code.Common.GetUserIPAddress().ToString(), HttpContext.Current);
Server.ClearError();
问题是,如果错误页面本身引发错误,我们会收到一个丑陋的错误:
运行时错误
描述:处理您的请求时发生异常。 此外,执行自定义时发生另一个异常 第一个异常的错误页面。请求已被终止。
如果错误页面本身引发错误,如何回退到更基本的自定义错误页面?
答案 0 :(得分:3)
刚刚想出来!在错误页面上使用Page_Error
方法:
private void Page_Error(object sender, EventArgs e)
{
Response.ClearContent();
Response.StatusCode = 500;
Exception = Server.GetLastError();
HttpContext.Current.Response.Write("Error");
HttpContext.Current.Response.End();
}