gpt4 book ai didi

c# - session 在 IHttpModule 中不可用

转载 作者:行者123 更新时间:2023-11-30 12:46:10 25 4
gpt4 key购买 nike

在我的程序中,我试图在 IHttpModule 中使用 session 变量。这是我的代码。这在 VS 2010 开发服务器中运行良好。但是当我尝试在 IIS7 中调试时,它显示异常 System.Web.HttpException: Session state is not available in this context那么为什么 session 在 IIS 7 中不可用,而在开发服务器中可用。

using System;
using System.Web;

public class Globalizer : IHttpModule
{
public void Init(HttpApplication context)
{
context.AcquireRequestState += new EventHandler(setLanguage);
}

public void Dispose(){}

public void setLanguage(Object sender, EventArgs i_eventArgs)
{
HttpApplication http_application = sender as HttpApplication;
http_application.Session["language"] = "test";

}
}

最佳答案

您只需执行 IRequiresSessionState .

所以你的代码应该是这样的:

public class Globalizer : IHttpModule, IRequiresSessionState

如果您只使用读取 session (并且从不更新它们),那么您应该使用 IReadOnlySessionState因为这最后不锁定 session 状态,因此,您不会有并发请求)。

关于c# - session 在 IHttpModule 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21155567/

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