我在 DiscountASP.NET 上托管我的网站。我最近在处理 404 错误时遇到了问题,因为没有向客户端发送 404 状态代码,而且我无法弄清楚它为什么突然启动。它曾经工作过。我尝试从一个简单的示例开始解决我的错误处理代码。我有两个页面,两者都存在:
404_start.aspx:此页面旨在模拟不存在的页面。
<%@ Page Language="C#" Debug="True" Strict="True" %>
<script runat="server">
public void Page_Load()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = 404;
Response.Status = "404 Not Found";
Server.ClearError();
Server.Transfer("404_end.aspx");
}
</script>
<html>
<body>
Start
<br />Response.StatusCode: <%=Response.StatusCode%>
<br />Response.Status: <%=Response.Status%>
</body>
</html>
404_end.aspx:此页面旨在模拟用户看到的错误消息。
<%@ Page Language="C#" Debug="True" Strict="True" %>
<html>
<body>
End
<br />Response.StatusCode: <%=Response.StatusCode%>
<br />Response.Status: <%=Response.Status%>
<br />This is extra text to fix this bug in Internet Explorer: http://queenofsubtle.com/404/?page_id=2158
<br />This is extra text to fix this bug in Internet Explorer: http://queenofsubtle.com/404/?page_id=2158
<br />This is extra text to fix this bug in Internet Explorer: http://queenofsubtle.com/404/?page_id=2158
<br />This is extra text to fix this bug in Internet Explorer: http://queenofsubtle.com/404/?page_id=2158
</body>
</html>
所以起始页面重定向到结束页面,但 404 错误永远不会出现。Fiddler 说它是 302,然后是 200。但 404_end.aspx 页面实际上显示为“Response.StatusCode:404”。在本地,Fiddler 根据需要看到 404 错误。会不会是楼主的错?谢谢你。