首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加会话TimeOut

增加会话TimeOut
EN

Stack Overflow用户
提问于 2011-12-28 13:22:36
回答 1查看 16.1K关注 0票数 13

通过IIS 7.0托管的站点

我想在我的ASP.NET应用程序中将我的会话超时设置为9小时。

这是在web.config设置的

代码语言:javascript
复制
<sessionState timeout="540"></sessionState>

但是,正如我所理解的,如果在网站所在的IIS中将超时设置为20分钟,设置扩展会话状态将是没有用的。

首先,我想证实这个假设是否正确。

问题是,我无法访问共享宿主web服务器的IIS。

现在,经过一些研究,我在代码项目中找到了另一个解决方案。这听起来像wonderful idea。其想法是向母版页插入一个iframe。iframe将包含另一个页面,其元刷新时间将小于20分钟。

代码语言:javascript
复制
 Response.AddHeader("Refresh", "20");

这个主意对我来说似乎不错。但这篇文章已经7年了。此外,在评论部分,用户抱怨如果页面最小化,这将无法工作,我担心当我的pages选项卡不活动时,也会发生同样的情况。

我想知道这些事情

  1. :即使页面最小化,刷新方法是否适用于我的方案?
  2. 是否有其他方法可以增加会话超时,从而重写IIS超时设置?
  3. 还在堆栈溢出中阅读了一些问题,其中的答案表明IIS会话超时是针对基本ASP页面的。那么为什么我的延长超时没有触发呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 13:34:19

首先,我想确认这个假设是否正确。

是的,如果您使用内存中会话状态模式,这个假设是绝对正确的.在这种情况下,会话被存储在内存中,而且由于IIS可以在不同的情况下删除AppDomain (不活动期间,达到CPU/内存重存,.)会话数据将丢失。您可以使用进程外会话状态模式。无论是StateServer还是SQLServer。在第一种情况下,会话存储在运行aspstate Windows服务的专用机器的内存中,在第二种情况下,会话是专用的Server。Server是最健壮的,但显然是最慢的。

1)刷新方法是否适用于我的场景,即使页面被最小化了?

隐藏的iframe仍然可以保持会话的活动,但正如我前面说过的,在IIS卸载应用程序时可能存在一些条件(到达=> /内存重存时,您也可以在IIS中配置它)。

2)是否有其他方法可以增加会话超时,从而覆盖IIS设置?

前一种方法不会增加会话超时。它只是通过定期向服务器发送HTTP请求来维护会话,以防止AppDomain中断。

3)我还读到了堆栈溢出中的一些问题,在这些问题中,答案表明IIS超时是用于clasic ASP页面的。那为什么我的延长超时时间没有触发呢?

不存在IIS会话超时的情况。会话是一个ASP.NET工件。IIS是一个不了解会话的web服务器。

就我个人而言,我在我的应用程序中不使用会话。我只是简单地禁用它们:

代码语言:javascript
复制
<sessionState mode="Off"></sessionState>

并使用标准HTTP构件,如cookie、查询字符串参数、.保持状态。我更喜欢将信息持久化到后端,然后使用唯一的it来检索信息,而不是依赖会话。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8656463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档