ArcGIS Server服务无法访问的解决方法

0
分享 2015-06-09
在客户的生产环境下,处于安全考虑,网络环境比较复杂,GIS 服务器一般是不可以访问外网的,而开发商的测试环境或者应用服务器又是分布在不同的服务器下,那么,这样就需要解决跨域访问的问题。
首先,我们需要说明一下在ArcGIS Server服务目录Services Directory里面通过ArcGIS Javascript浏览服务是需要Internet环境的,离线情况下肯定是不能预览的,因为它需要访问在线的javascript API。

其次,在实际开发环境我们可能需要叠加多源底图数据和业务数据,而数据投影信息的不一致或者缺失也会导致服务加载失败
上次在客户现场遇到的问题:服务发布后ArcGIS JavaScript里面无法预览(有Internet环境),开发环境不能访问,没有日志记录无代码提示。
问题分析:经检查发现客户就将一张图片加载到mxd文档中进行了服务发布,而且数据没有投影坐标系;
解决方法:给数据定义投影,重新发布服务,ArcGIS JavaScript里面可以看到服务,开发环境不能访问,无代码提示;
进一步分析发现,GIS 服务器和开发环境存在跨域访问问题,有些代码可能会提示(服务安全问题,无法加载的提示)。
解决方法:
生产跨域访问安全策略文件crossdomain.xml:
<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/ ... gt%3B

<cross-domain-policy>

<site-control permitted-cross-domain-policies="all"/>

<allow-access-from domain="*"/>

</cross-domain-policy>注:设置安全策略为允许所有连接访问
   将以上内容复制到文本文件里面,并修改其文件名为crossdomain.xml
然后放在web服务器的根目录 问题解决:比如ArcGIS Server for .Net应该是IIS的根目录(如:C:/Inetpub/wwwroot);ArcGIS Server for Java应该是web_output目录(如:C:/Program Files/ArcGIS/java/web_output)。对于10.0版本可能为**/ArcGIS/Server10.0/java/manager/web_output
总结:对于服务不能访问的问题,应该考虑以下三个方面:1.数据问题,投影信息是否正确,多源数据投影是否一致;2.服务是否正常,是否可以正常预览;3.检查是否存在跨域访问问题,设置跨域访问的安全策略;




文章来源:http://www.cnblogs.com/esrichina/archive/2013/03/26/2982153.html

0 个评论

要回复文章请先登录注册