我在WCF服务中托管我的客户端访问策略有以下操作:
[OperationContract]
[WebGet(UriTemplate = "/clientaccesspolicy.xml")]
XElement RetrieveClientAccessPolicy();
public XElement RetrieveClientAccessPolicy()
{
String policy = @"<?xml version=""1.0"" encoding=""utf-8""?>
<access-policy>
...
</access-policy>";
return XElement.Parse(policy);
}
当我尝试从我的silverlight应用程序连接到我的服务时,我收到错误,因为它无法找到客户端访问策略。它正在寻找它:
当我在IE中浏览时,我得到了404.但是,如果我浏览到这里,我可以找到clientaccesspolicy.xml文件:
如何让我的操作使客户端访问策略文件可以从根目录访问,而不是从该目录访问(服务器是服务的名称)?
答案 0 :(得分:1)
我猜你没有使用IIS来托管服务,因为你试图通过WCF调用返回clientaccesspolicy.xml。
对于自托管WCF服务,我认为您必须在App.config中为RetrieveClientAccessPolicy()
调用设置单独的服务端点和合同。该服务的baseAddress为http://localhost
,其中您的主服务的基地址为http://localhost/server
。