Asp.net 什么会导致应用程序启动导致会话丢失?
我有一个网站托管在一个实时服务器上,我的会话继续丢失 我在my global.asax中添加了一些日志记录,以检查应用程序何时启动和结束,会话何时启动和结束,以及是否存在应用程序错误 当我导航到我的网站时,应用程序在我登录后启动,会话启动并存储我的电子邮件和用户id。在那之后,我只是在我的网站上浏览了一分钟左右,然后我就自动注销了。自动注销是会话为空,然后我放弃会话的结果 下面是我的测试记录Asp.net 什么会导致应用程序启动导致会话丢失?,asp.net,session,logging,global-asax,application-start,Asp.net,Session,Logging,Global Asax,Application Start,我有一个网站托管在一个实时服务器上,我的会话继续丢失 我在my global.asax中添加了一些日志记录,以检查应用程序何时启动和结束,会话何时启动和结束,以及是否存在应用程序错误 当我导航到我的网站时,应用程序在我登录后启动,会话启动并存储我的电子邮件和用户id。在那之后,我只是在我的网站上浏览了一分钟左右,然后我就自动注销了。自动注销是会话为空,然后我放弃会话的结果 下面是我的测试记录 [11:4:57:802] Application has started [11:4:58:872
[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
什么会导致应用程序\u启动被随机触发?您的IIS应用程序池具有控制应用程序回收的配置选项 例如:在没有任何活动的可配置时段之后,当超过内存使用阈值时,在每天的特定时间 查看您的应用程序池配置 自动注销是会话为空,然后我放弃会话的结果 至于自动注销,如果您使用的是表单身份验证,那么就不需要因为会话已过期而自动注销。您仍然可以使用表单身份验证cookie,其到期时间完全独立于会话到期时间 在一个设计良好的应用程序中,只要从持久性存储(通常是数据库)加载会话中的内容,就可以重新生成会话中的任何内容