1

我有以下操作用于在我的 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

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

4

1 回答 1

1

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

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

于 2010-06-14T20:12:54.523 回答