2009年3月5日星期四

ArcGIS Server网站发布后地图显示空白的原因之一

        一般来说,在地图网站发布后,如果地图区域显示为空白,但可以看到其他控件,可能是因为:1、引用的service运行不正常;2、通过local方式连接而没有添加arcgis identity;3、Web Server机器名中含有下划线“_”。但实际情况可能不止这些,碰到这个问题后只能耐心寻找原因来解决问题。
        今天刚好碰到了这个情况:用模板程序发布一个网站,mapresource manager中添加了一个经过cache的map service,本机浏览正常,但通过外网浏览的时候,界面显示正常,地图区域空白;如果引用一个没有经过cache的服务的话,外网和本机浏览都正常。网络是这样的,web server和gis server都在本机上,本机处于局域网中,通过路由的转发规则设置外网访问网络ip时自动转到本机ip上来。cache和非cache的服务区别就在于显示地图时,前者是直接获取服务器上的图片,而后者是gis server动态生成图片然后发送到客户端。那么可以看出是在获取缓存图片时出问题了,而本机可以访问到,外网却访问不到,那么估计可能和虚拟路径有关。在外网机器上查看http请求,发现如图情况:

        可以看出,在获取其他控件的图片时,使用了网络的对外ip,而获取cache图片时使用的确实本机名。毫无疑问是cache路径的虚拟目录设置不对。一般安装完ags后,设置cache,job,output所对应的虚拟路径时,习惯用hostname作为域名,这和iis设置相符,但如果要对外发布的话,要考虑到这个情况。更改了cache路径的虚拟目录后,外网浏览就程序就正常了。

9 条评论:

  1. 请问老王:1.怎么修改“cache路径的虚拟目录”啊?2.修改是指要把hostname改为对外ip是吧!
    写不吝赐教!

    回复删除
  2. @匿名:
    1、在服务属性中,参考这个图片:
    http://webhelp.esri.com/arcgisdesktop/9.3/published_images/gpc_gpserv_200.png
    2、是的

    回复删除
  3. 明白了,十分感谢!

    回复删除
  4. 请问一下,Arcgis for server 10.1, 的访问白屏该怎么办呢?找不到那个map server properties和修改cache路径的虚拟目录,hostname也不知道怎么改..

    回复删除
    回复
    1. 原因不一定相同。先用fiddler之类的工具,查看问题出在哪里,然后在具体解决。

      删除
    2. 我是新手,不太懂这个web调试的..现在是电脑本机可以显示地图和FA的图,但是用别的设备就不行..听说是把localhost换成ip就行,但是还是连不上..请问是需要设置什么网络共享之类的么?

      删除
    3. 你的描述很不具体,比如访问白屏,用什么程序访问什么白屏了?FA图是什么?实在没办法解答。fiddler是查看http请求的工具,利用它能找到最直接导致问题的原因,然后可以根据这个结果来进行分析,只能提供给你大致的思路。如果你用fiddler能看到某个跟arcgis相关的请求出错了,我可以帮你想想是什么原因。

      删除
  5. 谢谢你的解答~现在问题已经解决了!我可以加你QQ问一点java的开发的问题吗?

    回复删除
    回复
    1. java我基本不懂,帮不到你,不好意思了:(

      删除