M K*_*atz 11 asp.net asp.net-mvc upgrade
我担心我的用户会话被扫除的可能性.我正在使用默认的ASP.NET会话对象和会话cookie.我知道会话可以超时,我已将会话的超时值设置为几个小时,以避免意外超时.
但至少有两个我担心的案例.
(1)我理解ASP.NET会定期回收运行站点/ Web应用程序的应用程序域(不确定我的所有术语是否正确).在这些回收活动中进行会话吗?
(2)至少在我的开发服务器上,我对站点所做的某些更改(例如,添加新页面)似乎会导致活动会话在重新编译站点(或其中一部分)时丢失.这种情况似乎不会随着每次变化而发生,但有很多变化.我特别关注这对于我的网站上线时可能发生的变化意味着什么.我想知道我可以更新的规则,而不会导致活动会话被杀死.
谢谢你的任何指示.
Joc*_*hen 12
这取决于您的会话状态模式.以下是您可以在Microsoft支持上找到的内容的副本:
ASP.NET支持三种会话状态模式:
- InProc:In-Proc模式将值存储在ASP.NET辅助进程的内存中.因此,此模式可以最快地访问这些值.但是,当ASP.NET工作进程回收时,状态数据将丢失.
- StateServer:或者,StateServer模式使用独立的Microsoft Windows服务来存储会话变量.由于此服务独立于Microsoft Internet Information Server(IIS),因此它可以在单独的服务器上运行.您可以将此模式用于负载平衡解决方案,因为多个Web服务器可以共享会话变量.虽然重新启动IIS时会话变量不会丢失,但跨越进程边界时性能会受到影响.
- SqlServer:如果您非常关注会话信息的持久性,可以使用SqlServer模式来利用Microsoft SQL Server来确保最高级别的可靠性.SqlServer模式类似于进程外模式,但会话数据是在SQL Server中维护的.SqlServer模式还允许您使用位于IIS进程之外且可以位于本地计算机或远程服务器上的状态存储.
如果使用StateServer或数据库,则当IIS检测到对网站的更改时,会话数据不会丢失.
归档时间: |
|
查看次数: |
6730 次 |
最近记录: |