asp.net – 应用程序池循环如何影响ASP Net会话状态?
我知道,当应用程序池被回收时,会启动一个新的工作进程,但我对在此过程中如何处理过期和有效会话感到困惑?传递给新的工作进程线程哪些被淘汰?它会做什么: >用户A的会话已过期 在回收之后,当用户A和用户B将要求他们的会话状态是什么时? 解决方法如果您有一个Web服务器,并且您已使用默认的InProc模式进行SessionState持久性,那么您在服务器代码中添加到会话的Dictionary中的任何数据都将在应用程序池回收期间丢失 – 在回收之后,当您的代码接下来访问SessionState字典中的条目时,它将返回null.如果跨负载均衡器有多个Web服务器,会话状态错误地配置为InProc,并且用户返回到不同的服务器(即没有粘性路由),则会发生类似情况. (存储在浏览器上的会话状态cookie可能仍有效几分钟). 允许会话状态“存活”应用程序池回收,服务器崩溃或跨越服务器场的方式是保留存储在SessionState中的数据,以便服务器(或多个服务器)可以在用户的时候再次检索数据会话返回.最简单的方法是使用out of the box解决方案之一,即单独的StateServer进程,或在SqlServer数据库中存储状态.自定义持久性也是一种选择. 一个警告 – 请注意,您在“进程外”模式下存储的任何数据(如StateServer或SqlServer)都需要可序列化 – 当您切换出InProc时,这可能是一个重大变化. (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC学习教程之Razor语法
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- asp.net-mvc – ASP.NET MVC现在是“开源”.这是一件好事吗
- asp.net – ASP:ItemTemplate中的DropDownList:为什么允许
- 序列化 – Newtonsoft中的TypeNameHandling需要$type作为第
- 如何将数组从Asp.net服务器端传递到客户端的Javascript函数
- asp.net core 实现一个简单的仓储的方法
- global-variables – MVC 3 Razor _ViewStart中的公共变量
- asp.net-mvc-4 – MVC 4 DropDownListFor错误 – 没有具有密
- ASP.NET自带对象JSON字符串与实体类的转换
- asp.net-mvc – 从页面到局部视图的asp.net mvc参
- asp.net-mvc-3 – 在ASP.NET MVC 3中覆盖/禁用授
- ASP.Net核心 – 获取帖子表格的所有数据
- asp.net-mvc – 文件上传MVC
- asp.net-mvc – 使用mvc的主要目的
- asp.net – 在fileupload中选择立即调用C#函数文
- asp.net-mvc – 使用asp.net mvc 2功能与火花浏览
- asp.net – IE10中的LinkButtons不执行回发
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- asp.net-mvc-2 – 在名称中使用连字符处理MVC2变