C# 当sessionstate cookieless设置为false时,如何在asp.net web应用程序中提供多用户访问?

C# 当sessionstate cookieless设置为false时,如何在asp.net web应用程序中提供多用户访问?,c#,asp.net,session-cookies,C#,Asp.net,Session Cookies,我有一个web应用程序,它应该可以被多个用户访问,但是,在登录两个或多个用户后,会话将变为null 这是我的网页配置: <sessionState cookieless="false" timeout="30" regenerateExpiredSessionId="true"/> 我将尝试用我的想象力解决您的问题 如果您与某个用户登录,并且在与其他用户登录后,会话变为null,这应该与导致IIS应用程序池崩溃的某个应用程序异常有关,因为我猜您使用的是

我有一个web应用程序,它应该可以被多个用户访问,但是,在登录两个或多个用户后,会话将变为null

这是我的网页配置:

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

我将尝试用我的想象力解决您的问题

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

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

Application\u Error
事件处理程序放入
Global.asax
中,并在其中设置断点以检测应用程序崩溃

更新 正如@b.pell在一些评论中指出的,会话可能会因为内存不足而消失


我没有提到您可以选择存储,但有时切换到这种模式并不容易,因为会话中存储的每个对象都需要可序列化,而序列化/反序列化对您的整体应用程序性能有重要影响。

无理由否决。。。我相信我已经尝试用一种非常可能的描述和解决方案来解决这个问题,基于我自己的经验,我相信如果服务器在内存压力下并且正在积极回收内存,会话也会消失。由于这个原因,我以前在共享主机中总是会有会话失败(如果是这个问题,您可以将会话设置为使用数据库,而不在proc中)。(还有,不是我投了反对票。):D@b.pell我可以在我的回答中加上这个例子。。。谢谢:)