Я пытаюсь настроить службу REST WCF так, чтобы она была доступна как по протоколу HTTP, так и по протоколу HTTPS.
Поскольку это сервис в рабочем состоянии, я бы хотел минимизировать изменения, необходимые для запуска HTTPS, иБег.Я хотел бы найти решение, в котором администратору нужно только заменить http:// на https://.. В соответствии с этим Wcf HTTP и HTTPS на одном хосте / порту , он долженбыло бы возможно достичь этого, но я борюсь с конфигурацией.
<services>
<service name="My.Server">
<!-- HTTP services -->
<endpoint address="/Common/"
behaviorConfiguration="restEndpointBehavior"
binding="webHttpBinding"
contract="My.IServer" />
<!-- HTTPS services -->
<endpoint address="/Common/"
behaviorConfiguration="restEndpointBehavior"
binding="webHttpBinding"
bindingConfiguration="httpsBindingConfiguration"
contract="My.IServer" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/MyService" />
<add baseAddress="https://localhost:8732/MyService" />
</baseAddresses>
</host>
</service>
</services>
Все работает нормально, пока я просто использую привязку HTTP или HTTPS (проверено с помощью Postman), но как толькоЯ активирую обе конечные точки, при которых запуск службы завершается неудачно:
Служба не может быть запущена.System.ServiceModel.AddressAlreadyInUseException: HTTP не может зарегистрировать URL-адрес https://+:8732/MyService/Common/. Другое приложение уже зарегистрировало этот URL-адрес с помощью HTTP.SYS.---> System.Net.HttpListenerException: не удалось прослушать префикс 'https://+:8732/MyService/Common/', поскольку он конфликтует с существующей регистрацией на компьютере.
Мне известны все netsh http urlacl | sslcert и может подтвердить, что это не должно быть проблемой, поскольку используется только одна конечная точка (HTTP или HTTPS) или изменен порт для HTTPS, например, : 8733 исправляет проблему, и служба отвечает, как и ожидалось, но, как было сказано ранее, я хотел бы использовать те же порты.
После исследования и попытки в течение довольно продолжительного времени, я предполагаю, что такая конфигурация не поддерживается.Кто-нибудь может подтвердить мои предположения или знает способ достижения желаемого результата?