c# - 如何在 ASP.Net 4 C# 中创建 503 响应 header

标签 c# asp.net webforms httpresponse http-status-code-503

我正在尝试为网站创建一个 Temporarily Down for Site Maintenance 保留页面。该网站是一个 asp.net 4 webform 网站。

我创建了一个 offline.aspx 页面,当我关闭网站时,我会将所有流量重定向到该页面。

在此页面上,我想发送一个503 响应代码 并指定网站恢复在线的日期 - 使用来自 google here 的信息

我希望我可以在我的 PageLoad 中做一些事情,比如:

Response.ClearHeaders();
Response.ClearContent();    
Response.StatusCode = 503;
Response.StatusDescription = "HTTP/1.1 503 Service Temporarily Unavailable";
Response.Flush();
throw new HttpException(503, "Temporarily Down For Maintenance."); 

这给了我正确的状态,但页面上出现以下错误:

XML Parsing Error: not well-formed
Location: http://xyz/offline.aspx
Line Number 3, Column 2:</pre></table></table></table></table></table></font></font></font></font></font></i></i></i></i></i></b></b></b></b></b></u></u></u></u></u><p>&nbsp;</p><hr>

我想我错过了一些简单的东西,我做错了什么?

此外,我是否会使用 Response.AddHeader503 之后添加重试 header ?

编辑:我在删除东西时过于热心了。清理所有删除内容并清除内容可以使以下内容起作用:

Response.StatusCode = 503;
Response.StatusDescription = "HTTP/1.1 503 Service Temporarily Unavailable";
Response.AddHeader("Retry-After", "Sat, 12 Jan 2013 23:00:00 GMT"); 
Response.Flush();

最佳答案

我相信这实际上是网络服务器或 ASP.Net DLL 的功能。如果某些数据已经流式传输到客户端,如果没有这些随机结束标记,错误消息将不会正确显示。

关于c# - 如何在 ASP.Net 4 C# 中创建 503 响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263835/

相关文章:

webforms - 如何使用 CSP(内容安全策略)将 WebForms 项目中动态创建的脚本列入白名单?

c# - 禁用浏览器后退按钮javascript

c# - “System.EventArgs”不包含 'Location' 的定义

c# - 在大列表中找到彼此接近的点

c# - 将 jquery ThickBox 大小设置为自动

c# - 如何在不刷新页面的情况下运行我的代码?

c# - 替换 databinder.eval 中的字符串

c# - ASP.NET:权限/身份验证体系结构

asp.net - 在我们的 IIS 日志中,当 executionTimeout 为 110 秒时,为什么请求持续 5 分钟或更长时间?

c# - 如何从列表框中进行选择