在我的泛型处理程序中,我尝试从会话中获取一些值。但有时对于一个会话,我有不同的价值观。
public void ProcessRequest(HttpContext context)
{
...
string someVar = context.Session["some_key"];
...
}
在网页上初始化的 Session["some_key"] 值(一次),然后是用户调用处理程序。问题是在几个回发请求上下文之后。会话["some_key"]给了我不同的价值。可能是应用程序池的"最大工作进程数"设置的原因吗?
代码的问题在于您没有在会话中存储任何值。因此,ASP.NET 会为每个新请求生成一个新会话。
在此处查找更多帮助:http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
如果应用程序需要整个会话的静态会话 ID,则可以在应用程序的 Global.asax 文件中实现 Session_Start 方法并将数据存储在会话对象中以修复会话 ID,也可以使用应用程序另一部分中的代码在会话对象中显式存储数据。
在代码中的某处添加类似这样的东西应该可以做到:
context.Session["dummy"] = 0;
此外,在提出问题之前尝试运行搜索以避免重复: