Как я могу получить доступ к операции политики доступа клиента моей службы WCF из корня?

У меня есть следующая операция для размещения моей политики клиентского доступа в моей службе 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 ответ

Решение

Я предполагаю, что вы не используете IIS для размещения службы, поскольку вы пытаетесь вернуть clientaccesspolicy.xml через вызов WCF.

В случае службы собственного размещения WCF, я думаю, вам придется настроить отдельную конечную точку службы и контракт для вашего RetrieveClientAccessPolicy() позвоните в свой App.config. Этот сервис будет иметь базовый адрес http://localhost где ваш основной сервис будет иметь базовый адрес http://localhost/server,

Другие вопросы по тегам