【发布时间】:2014-04-19 13:16:14
【问题描述】:
我正在重定向到错误 404 页面并希望发出 404 作为 google 引擎的响应代码。
我们在生产环境中使用 IIS 6 :(
代码在Application_Error() 中的 Global.ascx.cs 中执行 404 处理
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 框架中的错误?
【问题讨论】:
标签: c# asp.net iis http-status-code-404 server.transfer