Eri*_*Cal 2 asp.net session-variables iisreset
我对ASP.NET中会话的生命周期感到有些困惑,这是我的测试用例.
用户登录后,我将一些信息保存到会话变量(例如Session["bob"]="bob")然后我执行"IIS重置".用户仍然登录,但会话数据是null(例如Session["bob"].ToString()抛出一个NullReferenceException.
我预计会话数据仍然存在.除了注销用户之外,我能做些什么吗?我希望只要用户仍然登录,会话数据就会存在.
任何良好的链接,所以我了解正在发生的事情,以及对实际问题的任何帮助非常感谢.我试图谷歌这个,但无法以某种方式构建问题以获得我想要的东西.
您看到的行为 - Session内容无法在IIS重置事件中生存 - 是由于存储会话值的位置.默认情况下,这些值存储在ASP.NET"工作进程"的内存中,后者是运行ASP.NET网站的程序.
当您执行"IIS重置"时,您关闭整个IIS服务器,包括ASP.NET工作进程.这意味着会话的内容将从内存中删除.您的用户似乎仍然登录,因为它由存储在浏览器中的cookie控制.如果cookie仍然有效,则登录为.
如果你希望你的会话状态生存的重置IIS(或其他任何这将导致ASP.NET辅助进程重新启动),你需要存储在另一个地方你的Session对象.ASP.NET完全支持使用不同的会话存储"模式".阅读MSDN文章" 会话状态模式 "中的内容.
有关会话的一般概述,请查看MSDN上的" ASP.NET会话状态概述 "一文.
| 归档时间: |
|
| 查看次数: |
5312 次 |
| 最近记录: |