我有一个应用程序一直存在会话丢失问题,我几乎可以肯定它与应用程序池回收太频繁有关。
我想尝试一个进程外解决方案并配置了 SQLServer sessionState,但是当我回收工作进程时,我的会话仍然被吹走。这是我的 web.config
<sessionState cookieless="false" stateConnectionString="tcpip=localhost:42424" mode="SQLServer" sqlConnectionString="Data Source=(local;User ID=user;Password=password" timeout="180" />
我已经运行了适当的 sql 脚本来设置数据库,并且可以看到会话已创建并存储在数据库中,但是如果我更改 web.config 或手动回收工作进程,我的会话将丢失。我究竟做错了什么??
旁注,我收到与 StateServer 模式完全相同的行为。我似乎正确配置它,我可以看到登录时状态服务内存占用变大....我尝试将非序列化对象推送到并收到错误....但是当我回收应用程序池或更改web.config 我失去了会话....
我还尝试设置可以在这里找到的 Memcached 会话提供程序(这是我真正想使用的):http: //memcachedproviders.codeplex.com/releases/view/10468
它也在做同样的事情!我可以看到正在数据库中创建会话,当我尝试与非序列化对象交互时,我会收到与序列化有关的错误......但是当应用程序池被回收时我会丢失会话。
启用一些日志记录后,我在事件查看器中看到:
事件代码:1003 事件消息:应用程序编译正在启动
没有人??我真的需要摆脱进程会话状态的工作......帮助!