zoukankan      html  css  js  c++  java
  • 关于客户端无法获得服务器端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文件的权限,这是客户端获得结果的前提。

     (版权所有,转载请标明出处)

  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/potential/p/2764578.html
Copyright © 2011-2022 走看看