保护缓存目录
ArcGIS Server 支持预先创建地图和 globe 图像以提高用户查看服务时的性能。(有关创建地图缓存的信息,请参见什么是地图缓存?。)保护具有缓存的地图或 globe 服务时,如果要禁止通过虚拟目录对缓存进行匿名(不受限制)访问,则还应保护缓存目录。
如果虚拟目录中存在缓存切片,则 Web 客户端可使用 URL 在 Web 服务器上访问切片,而无需通过 Web 服务来访问地图服务。例如,对于地图服务 MyService1 来说,可通过如下 URL 访问 Web 服务器上的切片:
http://www.example.com/arcgiscache/MyService1/Layers/_alllayers/L00/R00004be4/C00003088.png。
客户端只能通过这种请求查看地图的图像;它们无法与数据交互或进行任何查询。如果需要限制任何地图查看访问,则需要按下述方法保护缓存文件夹。
下述方法只允许具有相应权限的用户访问受保护服务的缓存切片。与客户端通过 JavaScript 直接访问切片的方法相比,此切片访问方法的性能会略微下降,所以只有在需要对受保护服务的切片访问加以保护时才应实施此方法。
使用没有虚拟目录的缓存目录
在此方法中,受保护服务使用没有虚拟目录的缓存目录。应用程序(例如,Web ADF 应用程序或 ArcGIS Desktop)将请求 GIS Web 服务中的地图或 globe 切片。该服务验证了客户端的服务访问权限后,将从磁盘中检索切片。
请注意,如果缓存目录创建于 ArcGIS Server 的安装过程中,则该缓存目录将具有虚拟目录。若要使用此方法,必须创建没有虚拟目录的新缓存目录。
以下步骤可用于创建缓存目录并将服务分配给缓存目录。
- 创建新缓存目录。请勿为此缓存目录设置虚拟目录。有关说明,请参阅创建服务器目录中介绍的步骤。请确保运行服务器对象管理器 (SOM) 和服务器对象容器 (SOC) 所用的帐户对该目录具有写访问权限。如果将新文件夹创建在 arcgisserver 文件夹中(例如 C:\arcgisserver\arcgiscacheSecure),它将继承 SOM 和 SOC 的相应权限。
- 在管理器或 ArcCatalog 中,编辑受保护服务的属性,以将服务器缓存目录设置为先前创建的没有虚拟目录的目录。可在服务的参数 选项卡上设置缓存目录(在 ArcCatalog 中,必须停止服务才能更改其属性)。
- 如果已在具有虚拟目录的缓存目录中为服务创建了缓存切片,请将其移至磁盘上新设置的缓冲目录。有关详细信息,请参阅复制缓存主题。例如,如果最初将服务缓存创建在默认文件夹 C:\arcgisserver\arcgiscache 中,然后创建了新的缓存目录 C:\arcgisserver\arcgiscacheSecure,则可将该文件夹移动到新缓存目录。不应在具有虚拟目录的缓存目录中留下副本,因为该目录中的文件可在不受保护的情况下供用户使用。
- 对每项受保护的服务重复步骤 2 和 3。
创建新服务时,如果使用添加新服务 向导,则可指定缓存目录。如果使用发布 GIS 资源 向导创建服务,则以后可在服务属性 上设置缓存目录。