Silverlight跨域访问WCF服务

在使用Silverlight调用其他域里WCF时,出现错误提示:

....

这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常...

 

于是,想到肯定要设置什么东西,才能允许WCF服务跨域访问。于是,Google了以下。找到了具体的方法。将如下代码

 

<?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 path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

 

保存成clientaccesspolicy.xml放在WCF所在的根目录。这样就跨域访问了。

posted @ 2011-06-22 23:30  ♂风车车  阅读(1498)  评论(1编辑  收藏  举报