gpt4 book ai didi

c# - Server.Transfer 在 Application_Error 中不起作用

转载 作者:行者123 更新时间:2023-11-30 18:47:30 28 4
gpt4 key购买 nike

我正在重定向到错误 404 页面,并希望发出 404 作为谷歌引擎的响应代码。

我们在生产环境中使用 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

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.

响应.重定向

Issues 302 since it does client side redirect and then 404. I want to skip 302

Server.TransferRequest

This operation requires IIS integration pipeline mode

Global.asax Error handling: Quirks of server.transfer

我如何在 IIS 6 中处理这个问题?

为什么我遇到 Server.Transfer 的 session 问题?背后是否有正当理由或者它是 ASP.Net Framework 中的错误?

最佳答案

如果您仍然需要正确的 404 重定向,您可以使用此代码:

Response.AddHeader("Location", "~/404.aspx");
Response.Status = "404 Not found";

关于c# - Server.Transfer 在 Application_Error 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22401758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com