关于客户端无法获得服务器端GP服务(Geoprocessing Service)结果的解决办法
????? 之前發布了一個繪制等值面的服務,在本機測試的時候始終都可以訪問,沒有任何的問題,但是在遠程訪問時,出現了無法獲得GP服務結果(注:結果為圖片)的問題,而在服務器端確實生成了正確的結果。困擾了很久之后,終于找到了解決的辦法。
????? 一般在默認情況下,ArcGIS Server的GIS服務輸出文件夾用的是計算機名,可以按照如下方式查看:
打開ArcCatalog
選擇GIS服務器,右鍵自己創建的GIS服務器,比如上圖的qzj-pc.然后選擇服務器屬性,出現如下視圖:
默認情況下,虛擬目錄采用的是計算機名。而上述說的問題就在這個地方。
當我們遠程訪問GP服務時,如果結果是圖片的話,通過Fiddler我們會發現,客戶端在獲取服務器端的圖片時,其地址會變成:虛擬目錄地址+圖片名稱,例如當按照上圖設置時,其地址就是:http://qzj-pc/arcgisoutput/<圖片名稱.png>(注:一般來說,柵格數據在服務器端生成的圖片都是png格式的)。下圖是按照如上設置時用Fiddler檢測客戶端獲取結果的地址:
可以發現Host的地址是qzj-pc,也就是計算機名,這里我們可以知道獲取結果的地址和ArcCatalog中設置的是一樣的。
然而當我們如果是遠程訪問的時候,如果還是如上設置虛擬目錄,那么就會出錯,即無論怎樣也無法獲得GP服務的結果(注:這里是結果地圖服務,所以是png圖片)。因為如果是遠程訪問,遠程的機器是無法解析hhtp://qzj-pc/arcgisoutput/<圖片名稱.png>這個地址的。我們通過Fiddler監測也會發現找不到服務器這樣的錯誤提示。
這里的解決辦法是兩種:
一是在客戶端,在Host文件中添加地址的映射,將qzj-pc映射到GIS服務器的ip地址。
二是在服務器端直接將輸出的虛擬目錄改成:http://<服務器ip>/arcgisoutput。這樣在客戶端訪問的之后則會按照ip地址來取得服務器端的結果,而不是計算機名。
注意:在設置虛擬目錄時,需停掉所有的GIS服務,否則無法修改輸出的虛擬目錄
這樣修改后便能夠獲得服務器端的結果了。
例如下圖獲得就是SCREEN3大氣預測模型下火炬源的污染物擴散示意圖:
同時這里還需要注意的問題是,在服務器端需要正確設置arcgisoutput文件的權限,這是客戶端獲得結果的前提。
?(版權所有,轉載請標明出處)
轉載于:https://www.cnblogs.com/potential/archive/2012/11/10/2764578.html
總結
以上是生活随笔為你收集整理的关于客户端无法获得服务器端GP服务(Geoprocessing Service)结果的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何正确选用无线模块天线
- 下一篇: 手机内置天线