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

最近碰到个比较奇怪的问题,当缓存切片和Server位于不同的服务器时,使用Internet(SOAP)或Local(DCOM)连接到ArcGISServer可以访问到缓存切片,但是通过Rest API却无法访问。

   首先描述一下具体的配置过程:测试环境有两台服务器,A是Server服务器,安装了SOM,SOC,Webservices组件。B是文件服务器,只用于存放缓存。两台服务器位于同一个局域网内。具体的配置过程:

addsoc    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。

iisidentity

  • 修改C:\Windows\Temp目录的访问权限,添加ArcGIS WebServices账户对该目录的读写权限。
  • 配置ArcGIS SOAP Webservices不使用impersonation.

   打开C:\inetpub\wwwroot\ArcGIS\Services\web.config文件:

soap

  • 配置ArcGIS REST WebServices不实用impersonation.

    打开C:\inetpub\wwwroot\ArcGIS\rest\rest.config

rest

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

cachepool

  • 重启ArcGIS Server ObjectManager(SOM)服务。   

   经过上面的配置,RestAPI就可以成功访问缓存地图了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值