有没有办法在ASP.net中从服务器获取数据而不延长会话超时时间?这需要每隔几分钟自动完成,直到页面关闭,并且不需要用户交互。我的Web应用程序的页面需要定期轮询服务器以检查特定条件(例如在30分钟内计划进行紧急维护)。当条件为真时,页面将向用户显示消息。当条件为假时,不需要采取任何措施。理解上来说,向服务器进行回发会重置会话过期时间。我们不希望每次页面轮询服务器时都延长/刷新/重置会话。我需要一种自动轮询服务器但不会重新设置会话超时的方法。谢谢。
<httpRuntime executionTimeout="99999"></httpRuntime>
,其中executionTimeout应该是以秒为单位的,详情请参见http://msdn.microsoft.com/en-us/library/e1f13641(v=vs.71).aspx。首先,如果一个查询超出了会话时间限制,那么这个查询就存在严重问题。我宁愿先修复查询。 但是,如果您仍想使用会话进行操作,可以尝试以下方法:
您可以在应用程序中拥有一个Dummy.aspx,然后让图像元素在每15分钟刷新其URL。
<img id="dummyImage" src="/Dummy.aspx" width=0 height=0/>
<script type="text/javascript">
var dummyImage = document.getElementById("dummyImage");
setInterval(function(){
dummyImage.src = "Dummy.aspx?_tmp=" + (Math.random() * 100000);
}, 900000);
</script>
这样做可以避免对全局会话超时产生影响。
PageLoad
事件中,回显一个JavaScript setInterval(functiontocall(), timetowait);
函数。您调用的方法将是对Web服务进行AJAX请求以执行查询。