总结一下这两天遇到的问题.当Silverlight访问Window服务为宿主的WCF时, 不能像iis为宿主时在根目录下添加策略文件.此时,可以用.net 3.5中的WCF Rest来解决问题.
说明:
1.假设我们的WCF服务地址为:http://127.0.0.1:2000.那么就应该存在:
 
////接口:
[OperationContract]
        [WebGet(UriTemplate 
= "clientaccesspolicy.xml", ResponseFormat = WebMessageFormat.Xml)]
        Stream GetPolicy();
 
 MemoryStream(Encoding.UTF8.GetBytes(jsonResponse));
        }
 
3.在配置文件添加端点:

<endpoint binding="webHttpBinding"  contract="WindowsFormsApplication2.IClientAccessPolicy" address=""  behaviorConfiguration="postbehavior"/>
       
address为空,,使用基础地址.
 
4.完成
当Silverlgiht自动访问http://127.0.0.1:20000/clientaccesspolicy.xml取策略文件时,wcf就会调用GetPolicy()方法,返回策略文件,可以在策略文件里做权限设置.

点击下载相关代码

相关文章: