会话值在托管环境中过期。如何在asp.net中修复此问题
答案 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可以是空白页面。