Настройте wsDualHttpBinding с https
Я пытаюсь настроить службу wcf для использования wsDualHttpBinding через https. Мой текущий конфиг выглядит так:
обслуживание
<service behaviorConfiguration="SecureBackendWebServiceBehavior"
name="WebService.InternalService.BackendWebService">
<endpoint address=""
binding="wsDualHttpBinding"
bindingConfiguration="SecureBackendWebServiceWsDualHttpBinding"
name="BackendWebServiceEndpoint"
contract="WebService.InternalService.IBackendWebService"/>
</service>
переплет
<binding name="SecureBackendWebServiceWsDualHttpBinding"
receiveTimeout="00:05:00"
bypassProxyOnLocal="false"
transactionFlow="true"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
messageEncoding="Mtom">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
Поведение
<behavior name="SecureBackendWebServiceBehavior">
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
Когда я вызываю службу в моем браузере, она говорит: "Базовый адрес для схемы" http "не найден с привязкой конечной точки WSDualHttpBinding". Зарегистрированной базовой адресной схемой является [https].
Погугляя проблему, я получаю только образцы для обычных wsHttpBindings, но ничего для двойного связывания. Я уже ввел HttpsGetUrl, но в конечном итоге с той же ошибкой. Наблюдает ли я какую-то ценность или почему он пытается получить информацию через http?
Btw. изменение привязки к NetTcp не вариант!
Надеюсь, что любой из вас может помочь мне здесь. Спасибо
2 ответа
Нашел решение самостоятельно. Я использовал шаблоны и практики "Улучшение безопасности веб-сервисов: сценарии и руководство по внедрению для WCF", чтобы лучше понять безопасность в WCF. Эта книга также включает в себя HowTos для определенных сценариев. Единственное, что мне нужно было сделать дополнительно.
Поскольку мой веб-сервис разделен на три меньших сервиса, один из них использует WsDualHttpBinding, который мне нужен, чтобы сказать iis, что для этого не требуется ssl-сертификат для транспорта.
На данный момент о моем сервисе говорит, но мне нужно проверить, действительно ли он использует безопасность, которую я хочу иметь.
ОБНОВЛЕНИЕ: нашел эту статью, которая также содержит пошаговое руководство.
wsDualHttpBinding не поддерживает безопасность транспорта.
MSDN:
WSDualHttpBinding обеспечивает ту же поддержку протоколов веб-служб, что и WSHttpBinding, но для использования с дуплексными контрактами. WSDualHttpBinding поддерживает только безопасность SOAP и требует надежного обмена сообщениями.
Таким образом, вы можете рассчитывать только на безопасность сообщений.