Настройте 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 и требует надежного обмена сообщениями.

Таким образом, вы можете рассчитывать только на безопасность сообщений.

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