Silverlight跨域文件

错误信息:

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

 

工程的部署方式:

一层为Silverligh画面级别

一层为Web(包含WCF服务),同时搭建到IIS上部署的。

 

1.在IIS上创建WCF服务

2.使用VS2010将本地WCF的服务地址更新为IIS对应的IP地址

  使用本地IP地址,将WCF生成的服务(http://localhost/XX/WcfService.svc)替换为 http://192.168.1.107/WcfService.svc

3.在IIS上创建虚拟目录,搭建工程(Web),供外部访问,同时在wwwroot的目录下添加文件(ClientAccessPolicy.xml,CrossDomain.xml)跨域文件

4.在Web工程下添加ClientAccessPolicy.xml

5.设置Web工程的属性中设置[使用本地IIS Web服务器] 项目URL修改为:http://192.168.1.107/XX (项目开始搭建时VS2010自动创建的是 http://localhost/XX)

6.OK,成功了,原因不知道,求大大们指教,或者推荐文章。

 

跨域文件

ClientAccessPolicy.xml

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

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-access-from domain="*"/>
</cross-domain-policy>
View Code

 

关于跨域文件我是从MSDN上下载的,或者在MSDN上搜索[access-policy]

 

posted @ 2013-08-27 22:46  宝宝,爸爸爱你  阅读(762)  评论(0编辑  收藏  举报