会话值在托管环境中过期。如何在asp.nen中解决此问题

时间:2012-02-27 07:42:04

标签: asp.net

会话值在托管环境中过期。如何在asp.net中修复此问题

4 个答案:

答案 0 :(得分:1)

您无法对会话生存期做任何事情,因为即使您在web.config中更改该属性,托管计算机配置文件也将始终占优势,如果他们有5分钟,无论你的web.config会话中有60分钟,现场直播总是5分钟。

您可以做的是更改为 SQL Session State ,只有您可以完全控制会话的实时范围,但使用此功能有其优点和缺点。

或者您可以使用缓存系统一起避免会话。

不幸的是,在共享主机上发生了很多事情,并且请记住每次应用程序池刷新时会话都会重置,这在共享主机中更频繁地发生

答案 1 :(得分:0)

您可以设置会话过期的超时时间

使用Web.config

<system.web> 
      <sessionState timeout="20" /> <!-- in minutes -->
</system.web> 

答案 2 :(得分:0)

使用IIS
您可以通过以下方式进入设置:打开IIS |网站上的属性| ASP.NET选项卡|编辑配置...(或编辑全局配置以更改多个站点)|状态管理选项卡。 在这里,您将看到一个文本字段,其标签显示“会话超时(分钟),默认值为20分钟。编辑该值。
有关详细信息,请访问:
http://justgeeks.blogspot.com/2008/07/aspnet-session-timeouts.html

答案 3 :(得分:-3)

在您的母版页中添加此小javascript,这将避免会话过期

<script type="text/javascript">
PingAspToKeepSession();
function PingAspToKeepSession() {
var url = "KeppSession.aspx";
var httpOb = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
httpOb.open("POST", url, true);
httpOb.send("");
window.setTimeout("PingAspToKeepSession();", 60000); // every 60 seconds

} 
</script>

页面KeppSession.aspx可以是空白页面。