У меня есть служба 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>