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

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

 

常见问题1:Silverlight访问wcf服务时的策略文件如何设置?

回答:
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>
</
access-policy>


如果你的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>
</access-policy>


 

posted @ 2010-11-11 10:05  翁玉礼  阅读(1058)  评论(6编辑  收藏  举报