我有一个托管在实时服务器上的网站,在那里我的会话仍然丢失。
我已经在global.asax中添加了一些日志记录,用于检查应用程序何时启动和结束、会话在何处开始和结束,以及是否存在应用程序错误。
当我导航到我的网站时,应用程序在我登录后启动,会话开始并存储我的电子邮件和用户id。之后,我只是在我的网站上导航了一分钟左右,然后im自动注销。自动注销是会话为空,然后我放弃它的结果。
下面是我对上面测试的记录。
[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我已经测试过了,这不是一个特定链接的问题,当在本地主机上运行网站时,也不会发生这种情况。我失去了我的会话,因为应用程序的启动被触发了,我假设它会将会话设置为null。
什么会导致application_start被随机触发?
发布于 2013-10-11 18:17:39
您的IIS AppPool具有控制应用程序回收的配置选项。
例如:在没有任何活动的可配置时间段之后,当内存使用阈值被超过时,在每天的特定时间,...
查看您的AppPool配置。
自动注销是会话为空,然后我放弃它的结果。
至于自动注销,如果您使用的是Forms Authentication,那么您不需要仅仅因为您的会话已过期而自动注销。您仍将拥有Forms Authentication cookie,它的过期时间完全独立于会话过期时间。
在设计良好的应用程序中,您可以通过从持久性存储(通常是数据库)加载会话中的任何内容来重新生成它。
https://stackoverflow.com/questions/19315597
复制相似问题