【发布时间】:2010-01-11 06:45:12
【问题描述】:
我在 ASP.NET 3.5 中使用表单身份验证。
我注意到,当我的应用程序池回收(每 1.5 小时)时,通过 wuth Forms 身份验证的用户(具有 auth cookie)被注销并且必须重新登录。
如何避免?
【问题讨论】:
我在 ASP.NET 3.5 中使用表单身份验证。
我注意到,当我的应用程序池回收(每 1.5 小时)时,通过 wuth Forms 身份验证的用户(具有 auth cookie)被注销并且必须重新登录。
如何避免?
【问题讨论】:
您将会话模式设置为 InProc,这意味着它与该 W3WP 实例相关联并在重新启动时刷新。 (至少在 IIS6 上,不确定 IIS7)
请改用 StateServer 或 SqlServer。
Check the MSDN Documentation about sessionState,尤其是关于Session-State Modes的文章。
编辑: Paulo 做了一个很好的评论:InProc 会话可以存储几乎所有对象,而 StateServer 和 SqlServer 要求它们是 Serializable。另外,我想补充一点,它们速度较慢 - 您无法超越 InProc Sessions 的速度,因为它们存储在内存中。另一方面:如果您需要向应用程序添加负载平衡,使用 State/SqlServer 将使您受益。各模式各有利弊,这里要挑毒。
【讨论】: