gpt4 book ai didi

c# - Server.Transfer 导致 Session 异常

转载 作者:可可西里 更新时间:2023-11-01 03:02:16 25 4
gpt4 key购买 nike

在我的全局中,当发生错误时,我有以下代码来处理

//[..] code goes here
Server.Transfer("~/Error.aspx?ErrorID=" + errorId);

它曾经是一个 Response.Redirect,除了它更改了 url 之外,它工作得很好(这就是我想使用 Server.Transfer 的原因)

不幸的是,现在当它尝试加载错误页面时,当它尝试引用 Session 时,它会在 Masterpage 上崩溃

HttpException:
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 \\ section in the application configuration.

我的配置和页面中都有 enableSessionState。

我还发现了一些建议使用 Context.RewritePath 的链接 - 这只会导致为我加载空白页面。

使用 Response.Redirect 完美地按预期工作,所以我假设 Server.Transfer 是这里的问题。这是什么?

编辑代码:

protected void Application_Error(object sender, EventArgs e)
{

lock (_lockMe)
{
Exception ex = Server.GetLastError();

if (ex != null)
{
if (ex.InnerException != null)
ex = ex.InnerException;

ErrorLoggingManager.AddError(ex, new MembershipData(), ...); //etc
}

Server.ClearError();

//Some other database code for cleaning up some stuff when an error happens

}

try
{
if (Response != null)
{
//Get the last error logged
MyDataContext db = new MyDataContext();
int errorId = db.LoggedErrors.OrderByDescending(le => le.ErrorId).Select(le => le.ErrorId).FirstOrDefault();

Server.Transfer("~/Error.aspx?ErrorID=" + errorId);
}
}
catch (Exception)
{
}
}

最佳答案

因为您没有发布太多代码。所以没有看到你已经完成的实际实现。我可以在以下几点建议您。

要点1. 首先,您需要检查SessionState 是否为页面启用。您可以在 web.config 文件中全局设置它们。试试下面在 web.config

中给出的 snippet
<configuration>   
<system.web>
<pages enableSessionState="true" />
</system.web>
</configuration>

第 2 点。 并将您的 Redirection 放在 Global.asaxApplication_Error 中。

public void Application_Error(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
app.Server.Transfer("~/Error.aspx?ErrorID=" + errorId,true);
}

第 3 点同时检查您的 SessionState 是否也在 IIS 中正确设置。

详情在MSDN to enable sessionstate

希望这有帮助..!!!

关于c# - Server.Transfer 导致 Session 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21781691/

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