我创建了一个ClientAccessPolicy.xml,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
并将其放在C:\ Inetpub \ wwwroot \ wss \ VirtualDirectories \ intranet-80中,然后运行iisreset。尽管如此,当我通过Silverlight访问Web服务时,我收到一个CommunicationException,表示没有正确的跨域策略。我还需要做些什么才能访问我的网络服务?我无法从其他主机访问它,我无法从生成的文件E:\ Development \ MySLProject \ MySLProject \ bin \ Debug \ Default.html?
访问它干杯
的Nik
答案 0 :(得分:5)
告诉你如何更容易解决这个问题,而不是告诉你 你必须把文件放到哪里
我打赌你会在不到10分钟内解决问题(去过那里,做到了:-))
答案 1 :(得分:3)
您必须将此文件放在服务器根目录中,而不是放在虚拟目录根目录中。
答案 2 :(得分:1)
过去我遇到过clientaccesspolicy.xml文件的类似问题,我对该文件所做的任何操作都不会让我的Silverlight应用程序接受它并继续调用Web服务。我正在使用ProxyTrace来确保Silverlight请求该文件并正确返回它。
最终,出于绝望,我删除了clientaccesspolicy.xml文件并尝试了替代的crossdomain.xml文件,该文件旨在让Silverlight与Flash目标网站一起使用,并立即起作用。
答案 3 :(得分:1)
在Silverlight中:使用ServiceReferences.ClientConfig文件中的相对路径
<client>
<endpoint address="../Service1.svc"
祝你好运
答案 4 :(得分:1)
解决问题需要4个小时。最初我将“clientaccesspolicy.xml”和crossdomain放入Web服务根目录。一旦我将这些文件放入服务器根目录C:\ Inetpub \ wwwroot“我的应用程序已经开始工作。
答案 5 :(得分:0)
最佳解决方案是&gt;&gt;找到您网站的根物理路径&gt;&gt;将文件“ClientAccessPolicy.xml”复制到其中&gt;&gt;现在尝试访问。