エラー 404 ページにリダイレクトしており、Google エンジンの応答コードとして 404 を発行したいと考えています。
実稼働環境で IIS 6を使用しています:(
コードは Global.ascx.cs で 404 処理を行います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;
}
サーバー.転送
セッション状態は、構成ファイルまたは Page ディレクティブで enableSessionState が true に設定されている場合にのみ使用できます。また、System.Web.SessionStateModule またはカスタム セッション状態モジュールが
<configuration>\<system.web>\<httpModules>
アプリケーション構成のセクションに含まれていることを確認してください。
Response.Redirect
クライアント側のリダイレクトを行ってから 404 を実行するため、302 を発行します。302 をスキップしたい
Server.TransferRequest
この操作には IIS 統合パイプライン モードが必要です
Global.asax エラー処理: server.transfer の癖
IIS 6 でこの問題に対処するにはどうすればよいですか?
でセッションの問題が発生するのはなぜServer.Transfer
ですか? 背後に正当な理由がありますか、それとも ASP.Net Framework のバグですか?