您的位置:首页 > 其它

关于arcgis server ADF的几种超时 及解决办法

2010-03-29 10:17 302 查看
超时提示:
session has timed out from extended inactivity
a new session must be started to use this application by closing this brower and reopening
于是搜了下
知道了arcgis server ADF的超时问题
ADF的超时分为三种
■一种是adf控件的超时,纯客户端的超时,而且只和adf控件的js有关系
也就是如果你的adf控件在客户端没有被操作达到一定时间后的timeout,与adf控件无关的其他操作不受影响,而且不经过adf的js与server通讯也不受影响。
结果就是提示我上面列出的内容,这种超时是在aspnet_client/ESRI/WebADF/JavaScript/display_common.js 第990行设定的
var maximumLapseTime = 10; // Change this value to session timeout in minutes
提示信息也在这个js文件中,showLapseAlert() 这个函数负责
这种超时应该小于等于ASP.NET 自身的超时,显然,要是大于了,server端都超时了,client端还怎么混啊。
如果想修改这种超时,只需要重写这两个地方,但是要在display_common.js 加载之后的地方再重写一遍,比如写在<html>标签之后
重写了showLapseAlert()就能不提示那一堆鸟语了
如果想禁用这种超时,
var maximumLapseTime = Infinity;

■一种是ASP.NET 自身的超时 ,就是我们平常接触的asp的20分钟session超时,不介绍了
在web.config中加个<sessionState timeout="10"/>就可以改了
■一种是数据源超时,纯服务器端的
在arcgis server 设置中使用非池化的时候,一个asp.net的session在创建的时候arcgis server就会创建 server context,这种超时就是server context的寿命,数据源超时应该和asp.net的session一样,否则可能在一个session期间server context就会死掉,还得重新创建

我是用一下办法解决的:

在GIS 页面 的最下端<body>标签内重写函数(修改完了之后就不会出现哪些英文了)

<script language="javascript" type="text/javascript"><!--
type="text/javascript"><!--
var maximumLapseTime =10;//设置session过期时间
ESRI.ADF.System.showLapseAlert = function() {
alert("session 过期");//提示消息
window.location.href="../login.aspx";//跳转页面
};
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: