C# 将正确的http错误状态代码返回到浏览器

C# 将正确的http错误状态代码返回到浏览器,c#,asp.net,webforms,C#,Asp.net,Webforms,在my global.asax中,我已将代码写入应用程序_错误事件,该事件捕获所有错误,并向用户显示通用错误页面,以及记录/发送所发生的错误 然而,我意识到错误页面并没有向浏览器返回正确的状态代码,这意味着,对于像UptimeRobot这样的服务来说,即使页面被破坏,网站仍然可以正常运行 是否可以从错误中导出正确的状态代码并将其返回到浏览器?默认情况下,IIS会截获状态代码并发送调试信息或自定义错误页面。您可以停用此默认行为,并通过响应对象手动设置错误代码: Context.Response.T

在my global.asax中,我已将代码写入应用程序_错误事件,该事件捕获所有错误,并向用户显示通用错误页面,以及记录/发送所发生的错误

然而,我意识到错误页面并没有向浏览器返回正确的状态代码,这意味着,对于像UptimeRobot这样的服务来说,即使页面被破坏,网站仍然可以正常运行


是否可以从错误中导出正确的状态代码并将其返回到浏览器?

默认情况下,IIS会截获状态代码并发送调试信息或自定义错误页面。您可以停用此默认行为,并通过响应对象手动设置错误代码:

Context.Response.TrySkipIisCustomErrors = true;  
Context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
Context.Response.ContentType = "text/plain";
Context.Response.Write("Your error message");

您是否尝试过在页面上设置
Response.StatusCode
属性?@DGibbs无法工作,因为IIS会截获错误代码并重定向到调试或错误页面(除非您明确将tryskipiiscustomerrs设置为true,请参阅下面的答案)@DennisTraub如果使用了
tryskipiiscustomerrs
,它将起作用。@DGibbs这是我在下面的回答中已经发布的内容。我编辑了我之前的评论以澄清。@DennisTraub我知道这一点。