我正在尝试访问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提前
答案 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中的*
。