ArcGIS Serve服務無法訪問的解決方法


      在客戶的生產環境下,處於安全考慮,網絡環境比較復雜,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/cross-domain-policy.dtd">

<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.檢查是否存在跨域訪問問題,設置跨域訪問的安全策略;

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM