当sessionstate cookieless设置为false时,如何在asp.net Web应用程序中提供多个用户访问权限?

时间:2015-01-03 11:03:30

标签: c# asp.net session-cookies

我有一个应该可供多个用户访问的Web应用程序,但是,登录两个或多个用户后会话变为空

这是我的网络配置:

<sessionState cookieless="false" timeout="30"
               regenerateExpiredSessionId="true"/>

1 个答案:

答案 0 :(得分:0)

我会尝试用我的想象来解决你的问题。

如果您与某些用户一起登录,并且在与其他人登录后会话变为null,这应该是与某些应用程序异常相关的问题,这会使IIS应用程序池崩溃,并且因为我猜你是使用进程内会话状态,当应用程序池崩溃或被回收时,所有会话都将被丢弃。

换句话说:检查是否存在可能导致应用程序池崩溃的异常。

Application_Error中放置Global.asax事件处理程序,并在其中设置断点以检测应用程序崩溃。

更新

正如@ b.pell在一些评论中指出的那样,由于内存不足问题,会话可能会消失。

我没有提到您可以使用database session存储空间,但有时候切换到此模式并不容易,因为会话中存储的每个对象都需要序列化和序列化/反序列化对您的整体应用程序性能有重要影响。