您的位置:首页 > 其它

使用REST API 地图服务无法访问非本地的缓存切片

2015-01-05 21:25 501 查看
最近碰到个比较奇怪的问题,当缓存切片和Server位于不同的服务器时,使用Internet(SOAP)或Local(DCOM)连接到ArcGISServer可以访问到缓存切片,但是通过Rest API却无法访问。
   首先描述一下具体的配置过程:测试环境有两台服务器,A是Server服务器,安装了SOM,SOC,Webservices组件。B是文件服务器,只用于存放缓存。两台服务器位于同一个局域网内。具体的配置过程:



    1)在文件服务器B上创建缓存目录arcgisserver22,然后将其共享,在共享权限和安全权限中分别赋予ArcGISSOC和ArcGIS
Web Services账户访问控制权限。配置这一步前,首先要在B机器的操作系统级别创建和Server服务器相同的ArcGISSOC和ArcGIS Web Services账户,必须要确保用户名和密码完全一致,注意区分大小写。





2)在Server 服务器A的IIS控制台下,创建虚拟目录,将物理路径指向文件服务器的缓存目录(例如\\192.168.200.22\ArcGISCache22),在传递身份验证点击连接为…按钮。将凭据设置为arcgiswebservices账户,我这里对应的账户是makl。设置好后可以在B机器的arcgiscache22上放置一张图片,然后再通过虚拟目录访问,验证图片可以被成功访问,则说明虚拟目录配置正确。




 

3)在arcgisserver的管理控制台添加新的cache目录,并配置服务使用新的缓存目录。添加新缓存目录前要确保使用arcgisserver管理员身份连接server ,并且所有服务都已停止。





                        在服务器属性页添加新的缓存目录





         在服务属性页为服务指定新的缓存目录

4)启动服务创建缓存切片。

5)切片结束后,会发现切片的确已经生成到arcgiscache22目录下。通过local和internet连接均可以访问到切片。但是通过RestAPI无法访问。

产生问题的原因:

   当缓存存储在与Web Server分离的环境下时,由于授权问题,REST tilehandler无权访问硬盘上的文件。

解决方法:

   要解决这个问题,可以通过改变对切片返回的文件系统的授权。即取消REST的impersonate,直接将Rest所在进程池授权赋予ArcGISWeb Services账号。具体设置步骤参考:

以下步骤限于Windows 2008 Server ,Windows Vista,或Windows7操作系统:

创建一个新的IIS应用程序池,并且设置它的Identity为ArcGIS WebServices账号,并设置启用32位为true。




修改C:\Windows\Temp目录的访问权限,添加ArcGIS WebServices账户对该目录的读写权限。
配置ArcGIS SOAP Webservices不使用impersonation.
   打开C:\inetpub\wwwroot\ArcGIS\Services\web.config文件:





配置ArcGIS REST WebServices不实用impersonation.
    打开C:\inetpub\wwwroot\ArcGIS\rest\rest.config





添加ArcGIS WebServices(SOAP和REST)到新的应用程序池。




重启ArcGIS Server ObjectManager(SOM)服务。   
   经过上面的配置,RestAPI就可以成功访问缓存地图了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐