如何从根目录访问我的WCF服务的客户端访问策略操作?

时间:2010-06-14 19:54:36

标签: wcf silverlight clientaccesspolicy.xml

我在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应用程序连接到我的服务时,我收到错误,因为它无法找到客户端访问策略。它正在寻找它:

  

http://MyServer/clientaccesspolicy.xml

当我在IE中浏览时,我得到了404.但是,如果我浏览到这里,我可以找到clientaccesspolicy.xml文件:

  

http://MyServer/server/clientaccesspolicy.xml

如何让我的操作使客户端访问策略文件可以从根目录访问,而不是从该目录访问(服务器是服务的名称)?

1 个答案:

答案 0 :(得分:1)

我猜你没有使用IIS来托管服务,因为你试图通过WCF调用返回clientaccesspolicy.xml。

对于自托管WCF服务,我认为您必须在App.config中为RetrieveClientAccessPolicy()调用设置单独的服务端点和合同。该服务的baseAddress为http://localhost,其中您的主服务的基地址为http://localhost/server