天天看点

Q&A:关于Silverlight和WCF通信开发的问题

前段时间,分享了一些Silverlight和WCF通信的博文,很感谢不少朋友针对文章提出了各种问题,使得我在求解和答疑的路上也获得了很多,由于平日工作较忙,无法实时跟大家交流,请将在WCF和Silverlight开发方面的问题以评论的形式提出,我会尽我所能,希望能帮到大家。谢谢! 

回答:

Silverlight访问服务需要取得服务器的一份策略文件,相当于服务器给了Silverlight一个授权,目前Silverlight最新的版本是会从主机的80端口获取这个文件,也就意味着我们需要在默认的wwwroot下放置这个文件,但是根据WCF绑定方式(TCP,HTTP)的不同,策略文件内容不一样。

basicHttpBinding绑定方式时: 

<?xml version="1.0" encoding="utf-8"?>  

<access-policy>  

  <cross-domain-access>  

    <policy>  

      <allow-from http-request-headers="SOAPAction">  

        <domain uri="*"/>  

      </allow-from>  

      <grant-to>  

        <resource path="/" include-subpaths="true"/>  

      </grant-to>  

    </policy>  

  </cross-domain-access>  

</access-policy>

netTcpBinding绑定方式时:

<?xml version="1.0" encoding="utf-8"?>

<access-policy>

<cross-domain-access>

<policy>

<allow-from http-request-headers="*">

<domain uri="*" />

</allow-from>

<grant-to>

<socket-resource port="4502-4534" protocol="tcp" />

</grant-to>

</policy>

</cross-domain-access>

如果你的WCF同时涉及到这两个服务: 

<?xml version="1.0" encoding="utf-8"?> 

<access-policy> 

   <cross-domain-access> 

      <policy> 

         <allow-from http-request-headers="*"> 

            <domain uri="*" /> 

         </allow-from> 

         <grant-to> 

            <socket-resource port="4502-4534" protocol="tcp" /> 

            <resource path="/" include-subpaths="true"/> 

         </grant-to> 

      </policy> 

   </cross-domain-access> 

     本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/586674,如需转载请自行联系原作者