Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 什么会导致应用程序启动导致会话丢失?_Asp.net_Session_Logging_Global Asax_Application Start - Fatal编程技术网

Asp.net 什么会导致应用程序启动导致会话丢失?

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

我有一个网站托管在一个实时服务器上,我的会话继续丢失

我在my global.asax中添加了一些日志记录,以检查应用程序何时启动和结束,会话何时启动和结束,以及是否存在应用程序错误

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

下面是我的测试记录

[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,其到期时间完全独立于会话到期时间

在一个设计良好的应用程序中,只要从持久性存储(通常是数据库)加载会话中的内容,就可以重新生成会话中的任何内容