nav*_*een 13 asp.net session session-timeout
通过IIS 7.0托管的站点
我想在我的ASP.NET应用程序中将会话超时设置为9小时.
这已在web.config中设置
<sessionState timeout="540"></sessionState>
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,如果在托管网站的IIS内部将超时设置为20分钟,则设置扩展会话状态将毫无用处.
首先,我想确认这种假设是否正确.
问题是我无法访问共享托管Web服务器的IIS.
现在,经过一些研究,我想出了代码项目中的另一个解决方案.这听起来像一个wonderful idea.我们的想法是将iframe插入母版页.iframe将包含另一个元刷新少于20分钟的页面.
Response.AddHeader("Refresh", "20");
Run Code Online (Sandbox Code Playgroud)
这个想法对我来说似乎很好.但这篇文章已有7年历史.另外,在评论部分,如果页面被最小化,用户会抱怨这不起作用,并且我担心当我的页面选项卡不活动时会发生同样的情况.
我想知道这些事情
首先,我想确认这种假设是否正确.
是的,如果您使用内存中会话状态模式,则此假设绝对正确.在这种情况下,会话存储在内存中,因为IIS可能会在不同情况下(不活动时段,达到CPU /内存阈值,......)拆除AppDomain,会话数据将丢失.您可以使用进程外会话状态模式.StateServer或SQLServer.在第一种情况下,会话存储在运行aspstate Windows服务的特殊专用机器的内存中,在第二种情况下,它是专用的SQL Server.SQL Server是最强大的,但显然是最慢的.
1)即使页面最小化,刷新方法是否适用于我的场景?
隐藏的iframe仍然可以保持会话活动,但正如我之前所说的,当IIS卸载应用程序时可能存在一些条件(达到CPU /内存阈值=>您也可以在IIS中配置它).
2)是否有任何其他方法可以增加超出IIS超时设置的会话超时?
以前的方法不会增加会话超时.它通过定期向服务器发送HTTP请求来简单地维护会话,以防止IIS将AppDomain关闭.
3)我还在Stack Overflow中阅读了一些问题,其中的答案表明IIS会话超时是针对clasic ASP页面的.那为什么我的延长超时不会被解雇?
没有IIS会话超时这样的事情.该会话是一个ASP.NET工件.IIS是一个对会话一无所知的Web服务器.
我个人不在我的应用程序中使用会话.我只是禁用它们:
<sessionState mode="Off"></sessionState>
Run Code Online (Sandbox Code Playgroud)
并使用标准的HTTP工件,如cookie,查询字符串参数,......来维护状态.我更喜欢在后端保留信息并稍后使用唯一ID而不是依赖会话来检索它.
| 归档时间: |
|
| 查看次数: |
15319 次 |
| 最近记录: |