У меня есть служба WCF, размещенная в среде службы Windows, которая отлично работает через http; через https Я не могу получить один URL, не увидев приглашение для входа в Windows при запуске приложения silverlight (или просто открыв страницу в IE). Я использую интерфейс IPolicyRetriever, чтобы убедиться, что файл ClientAccessPolicy.xml найден для приложения Silverlight. Это работает правильно.
Для данной службы определены две конечные точки:
<service behaviorConfiguration="defaultBehavior" name="WCFServices.Scheduler">
<endpoint address="WCFServices/Scheduler/" binding="wsHttpBinding" bindingConfiguration="dBinding" contract="WCFServices.IScheduler" />
<endpoint address="" binding="webHttpBinding" contract="WCFServices.IPolicyRetriever" behaviorConfiguration="PolicyBehavior" bindingConfiguration="dBinding" />
<host>
<baseAddresses>
<add baseAddress="https://myservername.org/" />
</baseAddresses>
</host>
</service>
Если я перехожу на https://myservername.org/
, я вижу интерфейс службы тестирования (со ссылкой на wsdl). Это открывает корневой экземпляр IPolicyRetriever, который приложение Silverlight использует для раскрытия файла политики. Я могу загрузить этот и другие URL-адреса, которые предоставляют сервис WCF без каких-либо запросов на вход. НО, если я перехожу на https://myservername.org/WCFServices/Scheduler/
в IE 8, меня приветствует вход в Windows. Если я сбросил настройки безопасности службы и клиента для использования http, я смогу перейти на последний URL без запроса входа в систему, и приложение silverlight функционирует, как и ожидалось. Я подозреваю, что это как-то связано с тем, что эта служба WCF является единственной с двумя определенными конечными точками (в этой службе windows размещены 5 других служб WCF, каждая из которых имеет только одну определенную конечную точку). Я пропускаю некоторые правила авторизации? Я не понимаю, как это может быть, потому что все другие службы загружаются без запросов.
Буду признателен за любую помощь. Мне нужен полный https://myservername.org/WCFServices/Scheduler/
для обслуживания службы WCF без запроса входа в систему. Спасибо, что нашли время, чтобы прочитать это.
Что касается безопасности, у меня есть только привязка:
<binding name="dBinding" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600">
<security mode="Transport">
</security>
</binding>