这是我在web.config
中使用的语法。
但是我的会话会在10到15分钟内到期而不会持续到2小时。
<sessionState cookieless="UseCookies" cookieName="ASP.NET_SessionId180"
mode="InProc" timeout="120" />
答案 0 :(得分:2)
一个可能的原因是IIS会回收应用程序域。而且由于您正在使用InProc会话状态,AppDomain的整个内存都将被清除。 IIS可以在不同情况下回收AppDomain:达到一定的不活动时间或CPU /内存阈值限制。
您可以在following blog post。
中详细了解相关信息答案 1 :(得分:0)
“工人”很可能是导致您出现问题的人。如果它循环使用,它会在空闲时间足够长时重置会话。
检查IIS AppPool设置并增加空闲超时设置。
答案 2 :(得分:0)
当您使用InProc会话状态时,由于某些操作,池可能会被回收:修改web.config,将文件复制到bin文件夹,... 还要检查池的回收参数。 您可以尝试为会话使用StateServer选项。为此,您需要启动ASP.NET状态服务并检查您的对象是否已标记为可序列化。