我怎样才能让我的WCF服务的客户端访问策略操作是从根访问?(How can I get my WCF

2019-10-23 04:56发布

我有我的托管客户端访问策略在我的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

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

Answer 1:

我猜测你不使用IIS托管服务,因为你正在尝试通过WCF调用返回clientaccesspolicy.xml。

在自承载WCF服务的情况下,我认为你将不得不为您的一个单独的服务端点和合同RetrieveClientAccessPolicy()在你的App.config通话。 这项服务将有一个baseAddress http://localhost在您的主要服务将有一个基址http://localhost/server



文章来源: How can I get my WCF service's client access policy operation to be accessible from the root?