首页 > 软件资讯 > ArcGIS Silverlight地图保存失败

ArcGIS Silverlight地图保存失败

时间:2026-08-24 18:35:15

保存地图为PDF或图片时出现错误,应如何解决?

由于 WritableBitmapImage 采用了内容保护机制,当尝试通过 WritableBitmap 渲染来自其他应用程序的特定资源时,例如不同应用名称、不同的端口或不同服务器来源的数据访问其像素数组时,系统将抛出“Pixels are not accessible”的异常。此机制旨在防止跨域资源的非法访问,保障数据安全。在实际开发过程中,许多场景下会涉及到此类限制,尤其是当使用地图控件时尤为常见。例如,在集成缓存的地图服务如 ArcGISTiledMapServiceLayer 时,地图内容通常由远程服务器提供,属于跨域资源。因此,如果尝试直接读取地图图像的像素信息,将会触发这一安全限制,导致操作失败。为解决此类问题,开发者需要确保图像资源位于当前应用的安全区域内,或者采用服务器端处理、代理请求等方式绕过跨域限制。通过这些方法,可以顺利获取图像数据并完成后续处理任务,避免因跨域访问所引起的异常。

- 首先创建 arcgiscache 目录的共享文件夹,例如将其共享路径设为指定位置。

- 本地主机共享缓存,具体中所示。

ArcGIS Silverlight地图保存失败

- 需配置读写权限,具体设置见下图。

ArcGIS Silverlight地图保存失败

- 在Silverlight应用程序部署目录中创建一个指向指定位置的虚拟目录。

- 将共享路径设置一个别名,如 arccache,具体操作见下图所示。

- 通过ArcCatalog或ArcGIS Manager对ArcGIS Server的服务器属性进行配置,完成相关设置以确保服务正常运行和管理。

添加缓存类型目录时,将物理路径设为预先设定的共享路径,而虚拟路径保持原有配置。

- 为 Silverlight 应用程序中新建的虚拟目录设置对应路径。

- 访问本地主机上的Silverlight地图应用缓存,路径为http://localhost/SilverlightMapApp/arccache,具体界面参见下图。

- 调整已发布的缓存地图服务,将其使用的缓存目录更改为我们的指定路径。

- 共享路径中新增的 cache 目录,具体位置见下图所示。

ArcGIS Silverlight地图保存失败

- 能。

- 请勿通过 VisualStudio 内置 Web 服务器的路径访问,因其端口与其他服务器不同。

- 这意味着无法在 Visual Studio 中直接测试,必须部署到 IIS 网站环境下运行测试,具体操作所示。

- 运行程序后,将图片或PDF文件保存,效果所示。

ArcGIS Silverlight地图保存失败 ArcGIS Silverlight地图保存失败

热门推荐