跨域策略文件错误

时间:2011-05-26 18:54:20

标签: silverlight wcf tcptrace-pocketsoap

我正在使用WCF服务(非RIA)和silverlight我收到以下错误:

  

尝试制作时发生错误   对URI的请求   的 'http://本地主机:8732 /'。这可以   是因为试图访问   没有跨域服务   适当的跨域政策,   或者不适合的政策   SOAP服务。您可能需要联系   发布服务的所有者   跨域策略文件并确保   它允许与SOAP相关的HTTP头   被发送。也可能导致此错误   通过在Web中使用内部类型   服务代理不使用   InternalsVisibleToAttribute属性。   请查看内部异常   更多细节。

我尝试将以下内容添加到clientaccesspolicy.xml文件中,并将crossdomain.xml添加到我的Web项目的根目录中。他们看起来像这样......

<access-policy> 
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="http://*"/>
        <domain uri="https://*"/>
      </allow-from>
      <grant-to>
        <resource include-subpaths="true" path="/"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

的crossdomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

为什么我得到这个?

提前致谢。

3 个答案:

答案 0 :(得分:0)

如果你无法安装fiddler,你可以下载并使用TcpTrace吗? http://www.pocketsoap.com/tcptrace/

答案 1 :(得分:0)

clientaccesspolicy.xml需要放在托管WCF服务的网站的根目录下,而不是放在网络项目的根目录下。

答案 2 :(得分:0)

当我将WCF服务移动到我的Silverlight Web应用程序项目中的单独的 Web应用程序时,我遇到了SOAP WCF服务的问题。即使在WCF Web应用程序的根目录中使用clientaccesspolicy.xml,我仍然会收到此错误。对我来说最快的解决方案是将我的WCF服务从SOAP更改为REST,然后最终Silverlight识别出clientaccesspolicy.xml并且请求再次开始工作。