MicroStrategy ONE

在基于云或本地环境中使用 ESRI 服务器的代理

在某些情况下,您可能希望或需要对 ESRI 服务器使用代理。例如,您可能不希望有一些安全令牌在本地 ESRI 服务器上可见。或者您的请求可能超出浏览器施加的统一资源定位符 (URL) 的长度限制。使用 ESRI 服务器代理可以通过执行 POST 请求而不是 GET 请求来绕过长度限制。POST 请求不受最大 2048 个字符的限制,因为信息是在标头而不是 URL 中传输的。

代理由在 Web 服务器上运行的服务器端代码组成。基于浏览器的 Web 应用程序将请求发送到代理(在您的 Web 服务器上)。然后,代理将请求转发到 ESRI 服务器,并将 ESRI 服务器返回的响应转发回您的应用程序。

要使用 ESRI 服务器的代理,请按照以下方法之一中的步骤操作。您可以使用第一种方法通过基于云或本地集成来配置代理;第二种方法仅适用于本地集成。

要排除故障,请参阅 KB484310:支持 ESRI 代理的基本身份验证

使用具有基于云或本地集成的 ESRI 服务器代理

J2EE环境

  1. 复制 esriproxy.jsp,位于 jsp 在里面 MicroStrategy Web 安装目录并将其粘贴到可访问的位置。以下说明假设您将其保存在 jsp 插件中的文件夹。

  2. 在里面 MicroStrategy Web 安装目录,打开 WEB-INF/xml/proxy.xml。在里面 <serverUrls> 节点,添加 <serverUrl> 节点,列出您要使用代理的地图的所有 URL 并保存更改。

    复制
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>

  3. 打开 mapConfig.xml 在你的插件中。

  4. 在里面 <ec> 节点,添加 <proxyURLs><urlPrefixes> 节点。这告诉应用程序对您添加的地图 URL 使用代理 <urlPrefixes>

    如果 alwaysUse 属性设置为 "true",始终使用代理。如果 alwaysUse 属性设置为 "false" 或缺失,ESRI 决定是否使用代理。

    如果您添加一个 <urlPrefix> 节点,必须添加 ID 属性。此 ID 属性必须是唯一的,并且不能使用 1 到 13 之间的整数。

    复制
    <mc>
      <ec>
        <proxyURLs>
          <proxyURL alwaysUse="true">../plugins/ConnectorForESRI/jsp/esriproxy.jsp</proxyURL>
        </proxyURLs>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">services.arcgis.com</urlPrefix>
          <urlPrefix id="23">sampleserver1.arcgisonline.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. 保存更改并重新启动 MicroStrategy Web 服务器。

.NET环境

  1. 在里面 MicroStrategy Web 安装目录下, asp 文件夹,复制 esriproxy.ashx, proxy.config, 和 proxy.xsd。将它们粘贴到同一文件夹下可访问的位置。以下说明假设您将其保存在 asp 插件中的文件夹。

  2. 在你的插件中,打开 proxy.config。将 URL 添加到您要使用代理的地图并保存更改。在里面 <serverUrls> 节点,添加 <serverUrl> 节点,列出您要使用代理的地图的所有 URL,然后保存更改。

    复制
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>
  3. 在你的插件中,打开 mapConfig.xml

  4. 在里面 <ec> 节点,添加 <proxyURLs><urlPrefixes> 节点。这告诉应用程序对您添加的地图 URL 使用代理 <urlPrefixes>

    如果 alwaysUse 属性设置为 "true",始终使用代理。如果 alwaysUse 属性设置为 "false" 或缺失,ESRI 决定是否使用代理。

    如果您添加一个 <urlPrefix> 节点,必须添加 ID 属性。此 ID 属性必须是唯一的,并且不能使用 1 到 13 之间的整数。

    复制
    <mc>
      <ec>
        <proxyURLs>
          <proxyURL alwaysUse="true">../plugins/ConnectorForESRI/asp/esriproxy.ashx</proxyURL>
        </proxyURLs>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">services.arcgis.com</urlPrefix>
          <urlPrefix id="23">sampleserver1.arcgisonline.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. 保存更改并重新启动 MicroStrategy Web 服务器。

  6. 重新启动 MicroStrategy Web 服务器。

使用具有本地集成的 ESRI 服务器代理

您可以使用上述方法或以下方法进行本地集成。

J2EE环境

  1. 在里面 MicroStrategy Web 安装目录下, jsp 文件夹,复制 esriproxy.jsp 并将其粘贴到可访问的位置。以下说明假设您将文件保存在 jsp 插件中的文件夹。

  2. 在里面 MicroStrategy Web 安装目录,打开 WEB-INF/xml/proxy.xml。在里面 <serverUrls> 节点,添加 <serverUrl> 节点,列出您要使用代理的地图的所有 URL,然后保存更改。

    复制
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>

  3. 打开 mapConfig.xml 在你的插件中。

  4. 在 ESRI 配置文件中 <bm> 节点,添加一个 proxyURL 属性。这告诉应用程序为此底图使用代理。在里面 <ec> 节点,添加一个 <urlPrefixes> 节点列出您要使用代理的地图的所有 URL。

    复制
    <mc>
      <ec>
        <bm key="default" proxyURL="../plugins/ConnectorForESRI/jsp/esriproxy.jsp">
          http://myserver.mycompany.com/ArcGIS/rest/services
        </bm>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">the URLs to the maps you want to use a proxy for</urlPrefix>
          <urlPrefix id="23">services.arcgis.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. 保存更改并重新启动 MicroStrategy Web 服务器。

.NET环境

  1. 在里面 MicroStrategy Web 安装目录下, asp 文件夹,复制 esriproxy.ashx, proxy.config, 和 proxy.xsd。将它们粘贴到同一文件夹下可访问的位置。以下说明假设您将其保存在 asp 插件中的文件夹。

  2. 在你的插件中,打开 proxy.config。将 URL 添加到要使用代理的地图并保存更改。在里面 <serverUrls> 节点,添加 <serverUrl> 节点,列出您要使用代理的地图的所有 URL,然后保存更改。

    复制
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>
  3. 在你的插件中,打开 mapConfig.xml

  4. 在 ESRI 配置文件中 <bm> 节点,添加一个 proxyURL 属性。这告诉应用程序为此底图使用代理。在里面 <ec> 节点,添加一个 <urlPrefixes> 节点列出您要使用代理的地图的所有 URL。

    复制
    <mc>
      <ec>
        <bm key="default" proxyURL="../plugins/ConnectorForESRI/asp/esriproxy.ashx">
          http://myserver.mycompany.com/ArcGIS/rest/services
        </bm>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">the URLs to the maps you want to use a proxy for</urlPrefix>
          <urlPrefix id="23">services.arcgis.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. 保存更改并重新启动 MicroStrategy Web 服务器。