【发布时间】:2015-03-01 11:46:34
【问题描述】:
我有一个 Web 应用程序应该可供多个用户访问,但是在两个或多个用户登录后会话变为空
这是我的网络配置:
<sessionState cookieless="false" timeout="30"
regenerateExpiredSessionId="true"/>
【问题讨论】:
标签: c# asp.net session-cookies
我有一个 Web 应用程序应该可供多个用户访问,但是在两个或多个用户登录后会话变为空
这是我的网络配置:
<sessionState cookieless="false" timeout="30"
regenerateExpiredSessionId="true"/>
【问题讨论】:
标签: c# asp.net session-cookies
我将尝试用我的想象力解决您的问题。
如果您使用某些用户登录,并且在使用其他用户登录后会话变为null,这应该与导致 IIS 应用程序池崩溃的某些应用程序异常有关,因为我猜您正在使用 进程内会话状态,当应用程序池崩溃或被回收时,所有会话都被丢弃。
换句话说:检查是否存在可能导致应用程序池崩溃的异常。
在您的Global.asax 中放置一个Application_Error 事件处理程序并在其中设置一个断点以检测应用程序崩溃。
正如@b.pell 在一些评论中指出的那样,会话可能会因为内存不足问题而消失。
我没有提到你可以使用database session 存储,但有时切换到这种模式并不容易,因为存储在会话中的每个对象都需要可序列化,而序列化/反序列化具有重要影响影响您的整体应用程序性能。
【讨论】: