我正在重定向到错误404页面,并希望发出404作为Google引擎的响应代码。
我们在生产环境中使用 IIS 6 :(
代码在Application_Error()
if ((ex is HttpException && 404 == ((HttpException)ex).GetHttpCode()))
{
//Server.Transfer("~/404.aspx"); // Error with session state
Server.TransferRequest("~/404.aspx"); //This operation requires IIS 7
//Response.Redirect("~/404.aspx"); It will issue 302 then 404
return;
}
Server.Transfer的
会话状态只能在enableSessionState设置为true时使用, 在配置文件中或在Page指令中。还请 确保System.Web.SessionStateModule或自定义会话状态 模块包含在
<configuration>\<system.web>\<httpModules>
中 应用程序配置中的部分。
的Response.Redirect
问题302,因为它进行客户端重定向,然后是404.我想 跳过302
Server.TransferRequest
此操作需要IIS集成管道模式
Global.asax Error handling: Quirks of server.transfer
如何在IIS 6中解决此问题?
为什么我会遇到Server.Transfer
的会话问题?是否有正当理由或ASP.Net Framework中存在错误?
答案 0 :(得分:-2)
如果您仍需要正确的404重定向,则可以使用以下代码:
Response.AddHeader("Location", "~/404.aspx");
Response.Status = "404 Not found";