解决从Sharepoint中托管的Silverlight调用webservice时出现的跨域错误

解决从Sharepoint中托管的Silverlight调用webservice时出现的跨域错误,silverlight,sharepoint,cross-domain,Silverlight,Sharepoint,Cross Domain,我有一个网站,其中包含一个webservice和一个clientaccesspolicy.xml文件,如下所示: <?xml version="1.0" encoding="utf-8" ?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="*"

我有一个网站,其中包含一个webservice和一个clientaccesspolicy.xml文件,如下所示:

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

当我尝试从从从我的计算机或Web应用程序运行的Silverlight应用程序访问此Web服务时,它工作正常。当我将silverlight xap放入Sharepoint并在其中运行时,它会创建一个跨域错误。此clientaccesspolicy文件不应该提供任何计算机访问权限吗?我是否缺少一些额外的参数?clientaccesspolicyfile实际上在某种程度上起作用,因为在添加Web服务之前,我无法从计算机访问该Web服务。

跨域策略需要位于域的根目录中。你在使用子域吗?使用Fiddler查看它从哪个url请求文件。好吧,现在我已经与Fiddler进行了检查,有趣的是,当托管在SP.Crap中时,clientaccesspolicy文件实际上从未被请求过!