ArcGIS Server地图网站发布后,浏览过程时地图区域显示为空白,但是其他控件显示正常,可能原因有以下几点:
1、引用的service运行不正常
2、通过local方式连接而没有添加arcgis identity
<system.web>
<identity impersonate="true" userName="boyuzk\arcgiswebservices" password="admin" />
</system.web>
我是这样解决的
3、Web Server机器名中含有下划线“_”
4、GIS Server路径设置有问题
5、Map Service最大实例数会导致超过此实例数后不能正常访问地图
6、系统编码会影响地图的显示。
7、地图显示范围没有设置好,会出现地图跑出视线范围。
(此外soc机器所能host的最大服务实例数和地图服务的最大实例数不要弄混了)
本人只就原因四简单谈一下:
近二天就遇到这个情况,网站用到的地图资源是经过切片(cache)的Map Service,网站发布后,在本机浏览一切正常,
但通过其他局域网内电脑浏览时地图出现异常,地图显示空白,而地图控件,图层等却是正常的。后来到网上查了不少资料,
从一个博客中了解到了一些原因,在这里要感谢他,本文的大部分内容也是受他的启发。
当然解决过程中遇到了一些奇怪的现象:有几台电脑也可浏览正常,检查其网关,有的与本机一样,有的不一样....
这里不一一说明了,只说明解决方案:
网络是这样的,web server和Gis server都在本机上,本机处于局域网中,通过路由的转发规则设置外网访问网络ip时自动转到本机ip上来。
cache和非cache的服务区别就在于显示地图时,前者是直接获取服务器上的图片,而后者是GIS Server动态生成图片然后发送到客户端。
那么可以看出是在获取缓存图片时出问题了,而本机可以访问到,其他电脑却访问不到,这和虚拟路径有关。
页面获取其他控件的图片时,使用了网络的对外ip,而获取cache图片时使用的确是本机名。
毫无疑问是cache路径的虚拟目录设置不对。一般安装完ags后,设置cache,job,output所对应的虚拟路径时,
习惯用hostname作为域名,这和iis设置相符,但如果要对外发布的话,要考虑到这个情况。
更改了cache路径的虚拟目录后,外网浏览就程序就正常了。
更改ArcGIS Server相关配置时,要先停止地图服务
更改cache路径步骤:
打开服务器属性设置
选择Cache 将主机名(局域网内同一网关可以访问到)
更改为本机IP(局域网内可访问)
外网IP(整个互联网可访问到)