gpt4 book ai didi

asp.net - SQLServer session 状态管理在应用程序池回收时丢失

转载 作者:行者123 更新时间:2023-12-02 10:11:37 24 4
gpt4 key购买 nike

我有一个应用程序一直存在丢失 session 的问题,我几乎肯定这与应用程序池回收过于频繁有关。

我想尝试进程外解决方案并配置了 SQLServer sessionState,但是当我回收工作进程时,我的 session 仍然被吹走。这是我的 web.config

<sessionState cookieless="false" stateConnectionString="tcpip=localhost:42424"  mode="SQLServer" sqlConnectionString="Data Source=(local;User ID=user;Password=password" timeout="180" />

我已经运行了适当的 sql 脚本来设置数据库,我可以看到 session 已创建并存储在数据库中,但如果我更改 web.config 或手动回收工作进程,我的 session 就会丢失。我做错了什么??

旁注,我在 StateServer 模式下收到完全相同的行为。我似乎配置正确,当我登录时,我可以看到状态服务内存占用量变得更大......我尝试将非序列化对象插入并收到错误......但是当我回收应用程序池或更改web.config 我失去了 session ....

我还尝试设置 Memcached session 提供程序(这是我真正想使用的),可以在此处找到:http://memcachedproviders.codeplex.com/releases/view/10468

它也在做同样的事情!我可以看到数据库中创建的 session ,当我尝试与非序列化对象交互时,我会收到与序列化相关的错误......但是当应用程序池被回收时,我会丢失 session 。
启用一些日志记录后,我在事件查看器中看到以下内容:事件代码:1003 事件消息:应用程序编译正在开始

没人??我真的需要退出进程 session 状态工作......帮助!!

最佳答案

检查您的计算 secret 钥设置(假设 IIS 7.5)。如果您的网络服务器设置为自动生成机器 key ,则当您的应用程序回收时,它可能会生成新 key ,从而导致您丢失 session 。

请参阅此处的链接,了解为您的 Web 应用程序生成唯一机器 key 的简单方法。您应该能够在 Web 服务器或 Web 应用程序级别生成它们。

http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx

此外,FWIW,SQL Server session 状态管理器与数据库非常对话。它可以工作,但是您将使用该 session 提供程序为每个请求访问数据库。

关于asp.net - SQLServer session 状态管理在应用程序池回收时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12653708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com