0

我试图在 ClientBin 中访问我的 .xml 文件,但没有成功。

代码:

 WebClient xmlClient = new WebClient();
 xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
 Uri uri = new Uri("Antwerpen1.xml", UriKind.RelativeOrAbsolute);
 xmlClient.DownloadStringAsync(uri);

调试 uri 时会引发以下错误:System.InvalidOperationException

结果抛出以下错误:相对 URI 不支持此操作

我可以使用以下路径访问我的文件:http://localhost:2546/contentManagement.Web/ClientBin/Antwerpen1.xml

我究竟做错了什么?


更新:我在主页后面的代码中尝试了相同的代码并且它有效。网络服务仍然没有结果。


update2:我发现这不是URI 的问题,而是 xmlClient.DownloadStringAsync 的问题。BaseAdress(我的clientbin中的xml文件存储的路径)由于某种原因是空的..

, 提前

4

1 回答 1

0

您需要为您的 Web 服务设置客户端访问策略,以允许该服务跨域边界工作。

MSDN 页面有更多详细信息,但基本上您需要clientaccesspolicy.xml在 Web 服务的根目录中调用一个文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

这将允许任何人访问。要将其锁定,请将*uri 中的 替换为您的 url。

于 2011-07-22T20:48:26.873 回答