2013-10-11 115 views
0

我有一个网站托管在活动服务器上,我的会话不断丢失。什么会导致Application_Start导致会话丢失?

我已经添加了一些日志记录到我的global.asax来检查应用程序何时开始和结束以及会话开始和结束的位置以及是否存在应用程序错误。

当我导航到我的网站时,应用程序在我登录会话开始并存储我的电子邮件和用户标识后启动。之后,我只是在我的网站周围浏览了一分钟左右,然后我自动注销了。自动注销是会话为空的结果,然后我放弃它。

以下是我上面的测试日志。

[11:4:57:802] Application has started 
[11:4:58:872] Session has started 
[11:4:58:890] Set Email Sessions 
[11:4:59:61] Set PracticeId and PractitionerId Sessions 
[11:6:49:838] Application has started 
[11:6:5:391] Session has ended 
[11:6:5:445] Application has ended 
[11:6:8:208] Session has started 
[11:6:8:338] Abandon Session 
[11:6:8:343] Session has ended 

我已经测试过,这是不特定链接的问题和运行的本地主机上的网站时,这不会发生。我失去了我的会话,因为应用程序启动被我开除,然后将会话设置为空。

什么可能导致application_start被随机触发?

回答

0

您的IIS AppPool具有控制应用程序回收的配置选项。

例如:一个可配置的时间段没有任何活动,当内存使用阈值每天都在突破,在特定的时间后,...

看看你的应用程序池的配置。

自动注销是会话为空,然后我放弃它的结果。

对于自动注销,如果您使用的是表单认证,那么您不需要仅仅因为您的会话已过期而自动注销。您仍将拥有表单身份验证Cookie,其过期完全独立于会话过期。

并且在一个设计良好的应用程序中,只需通过从持久存储(通常是数据库)加载它就可以重新生成Session中的任何内容。

相关问题