asp.net会话一个键的不同值

时间:2014-01-13 15:50:53

标签: asp.net session handler

在我的通用处理程序中,我尝试从会话中获取一些值。但有时候我会有一个不同的价值观。

public void ProcessRequest(HttpContext context)
{
    ...
    string someVar = context.Session["some_key"];
    ...
}

会话[“some_key”]值在网页上初始化(一次),然后是用户调用处理程序。问题是,在几次回发请求后,context.Session [“some_key”]给了我不同的价值。它可能是应用程序池的“Max Worker Processes”设置的原因吗?

1 个答案:

答案 0 :(得分:0)

您的代码存在的问题是您没有在会话中存储任何值。因此,ASP.NET正在为每个新请求生成一个新会话。

在此处查找更多帮助:http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx

  

如果您的应用程序需要整个会话的静态会话ID,您可以在应用程序的Global.asax文件中实现 Session_Start 方法,并将数据存储在Session对象中以修复会话ID, 或者您可以在应用程序的其他部分使用代码,以便在Session对象中显式存储数据。

在代码中的某处添加类似的东西应该这样做:

context.Session["dummy"] = 0;

更重要的是,在提出问题之前尝试运行搜索以避免 duplicates