silverlight导航项目 - 使用webservice访问clientbin中的xml文件的问题

时间:2011-07-22 20:28:44

标签: xml silverlight web-services silverlight-4.0 clientbin

我正在尝试访问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

我做错了什么?


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


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

,ty提前

1 个答案:

答案 0 :(得分:0)

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

The MSDN page有更多详细信息,但基本上您需要在Web服务的根目录中使用名为clientaccesspolicy.xml的文件,如下所示:

<?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中的*