我有一个aspx页面,上面有几个文本框和一个提交按钮,一旦点击提交按钮,屏幕上的tabletextboxes就会创建一个xml文件。
如果马上做的话,效果还不错,但如果你在20分钟左右后点击按钮,页面就会出错。
我有。
<location path="Default.aspx">
<system.web>
<httpRuntime executionTimeout="1000000000"/>
</system.web>
</location>
在web.config和 <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="1000000000" />
在aspx页面上,但它仍然在20分钟左右后超时。
我到底缺了什么?
在你的web.config中,你很有可能有了
<sessionState timeout="20"></sessionState>
不过你不应该把会话超时时间延长到这个时间以外。
如何设置会话超时超过20分钟?这篇文章解释了所有相关的地方来检查你的会话超时。
另外,当你来部署你的应用程序时,记得检查IIS的超时配置。
也许Session已经结束了,试着设置SessionTimeOut,或者写一个JavaScript函数,按时间发送AJAX请求来保持Session的活力.但我真的不认为你的方法是对的,如果Session已经结束,你应该重定向到登录页面。
这里有一个很好的例子来保持Session的活力。http:/www.dotnetcurry.comShowArticle.aspx?ID=453
此外,你可以不延长你的会话,而只是警告用户,他们即将被定时退出系统,并问他们是否你想继续使用网站
http:/programmerramblings.blogspot.co.uk201107aspnet-session-timeout-control-with.html。
这个控件可以让你做到这一点
我是在单个页面和按钮点击事件中设置的。如果你不想在配置中改变整个应用程序的超时,似乎可以做到这一点。
HttpContext.Current.Server.ScriptTimeout = 90000;