UPDATE:设置响应状态代码会导致不必要的错误文本在自定义错误页的顶部
为了确保正确的状态代码返回给浏览器,该error.aspx有这样一行:
<% Response.StatusCode = 500; %>
删除它删除不需要的文本,但我想要正确的状态码,所以我想这是新的问题......怎么样?
设置响应状态代码有相同的结果:
HttpContext.Current.Response.StatusCode = 500;
将更新问题称号。
PRE-UPDATE:
由于一些遗留代码/配置,我们有一个不太寻常的自定义错误页面设置,它处理异常的global.asax
并使用Server.Transfer()
提出相应的.aspx错误页面,像这样:
public void Application_Error(object sender, EventArgs e)
{
// abbreviated to clear out logging and some other logic that determines which error page to show
HttpContext.Current.Response.Clear();
HttpContext.Current.Server.ClearError();
var context = HttpContext.Current;
if (context != null)
{
var errorPage = "~/ErrorPages/error.aspx";
context.Server.Transfer(errorPage);
}
}
的问题是,当error.aspx被示出为一个远程用户错误消息(和一个新的开口body标签...)被预设于页面,因此的第一行页面是无风格的文字说:
The page cannot be displayed because an internal server error has occurred.
不理想,而且,虽然也许我的谷歌搜索错误的东西,它似乎并没有是是有据可查的或经常讨论的一个问题。
任何想法欢迎。 error.aspx代码是非常通用的,但我很高兴发布,如果它可能有帮助 - 请仅评论。
嗨@Siva戈帕尔,我没有尝试,和其他各种东西。原来我需要在web.config中设置existingResponse。看到我的答案。无论如何感谢你的想法。 – GP24