У меня есть служба Wcf в VS 2010, .NET 4.0.Ошибка при настройке HTTPS в службе WCF
Сайт IIS - это виртуальный каталог.
Я пытаюсь настроить и доступ к нему с помощью протокола HTTPS
Но я получаю ошибки
Could not find a base address that matches scheme https for the endpoint with binding WSHttpBinding. Registered base address schemes are [http].
или
Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http].
Googleing, я видел несколько вариантов о конфигурациях: serviceMetadata , привязки, baseAddresses, ..
я попробовать различные конфигурации, но я получаю ту же ошибку:
serviceMetadata
<serviceMetadata httpGetEnabled="false or true" httpsGetEnabled="true" />
привязок
Я использую <security mode="Transport">
<bindings>
<basicHttpBinding>
<binding name="SecureTransportOnly">
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
</security>
</binding>
<binding name="NoSecure">
<security mode="None"><transport clientCredentialType="None"/></security>
</binding>
</basicHttpBinding>
<wsHttpBinding>
<binding name="SecureTransportOnly">
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
</security>
</binding>
</wsHttpBinding>
</bindings>
конечная точка
<endpoint
address=""
binding="basicHttpBinding"
bindingConfiguration="SecureTransportOnly"
name="xxxActualServiceEndPoint"
bindingNamespace="https://pruebaslba.xxxx.net/ServicioPyS"
contract="IxxxActualService">
MEX
<endpoint address="mex" binding="mexHttpBinding o mexHttpsBinding" contract="IMetadataExchange"/>
И я перестарался:
<!--<host>
<baseAddresses>
<add baseAddress="https://pruebaslba.xxxx.net o https://pruebaslba.xxxx.net/ServicioPyS"/>
</baseAddresses>
</host>-->
<!--<identity>
<dns value="localhost" />
</identity>-->
Я пытался, я думаю, почти конфигурации, которые я нашел в форумах. Я не знаю решения.
ОБНОВЛЕНИЕ Получаю больше информации об этом. Веб-сайт находится на 2 серверах (среда предварительного производства): preiis01 и preiis02. SSL не включен.
Я могу получить доступ к http://preiis01/ServicioPyS/Service.svc?wsdl Все в порядке по http.
https://pruebaslba.xxxx.net/ServicioPyS/Service.svc?wsdl является общественным адресом о NLB (нагрузка сбалансирована, я думаю, F5). В NLB настроен SSL. Я не знаю больше информации, только ИТ-отдел имеет всю информацию.
Проблема о WSDL
http://preiis01/ServicioPyS/Service.svc?wsdl
<wsdl:service name="ActualService">
<wsdl:port name="ActualServiceEndPoint"binding="i0:ActualServiceEndPoint">
<soap:addresslocation="http://preiis01/ServicioPyS/Service.svc/Service.svc" />
</wsdl:port>
</wsdl:service>
URL WSDL в NLB еси проблема- с мыло: адрес места часть и не генерируется право (набор HTTP, а не HTTPS)
https://pruebaslba.xxxx.net/ServicioPyS/Service.svc?wsdl
<wsdl:service name="ActualService">
<wsdl:port name="ActualServiceEndPoint"binding="i0:ActualServiceEndPoint">
<soap:addresslocation="http://pruebaslba.xxxx.net/ServicioPyS/Service.svc/Service.svc" />
</wsdl:port>
</wsdl:service>
решение быстро было изменить вручную WSDL (SingleFile) и установите Https в мыло: addresslocation часть, в новом URL https://pruebaslba.xxxx.net/ServicioPyS/WSDL/ServiceWsdlModificado.Single.wsdl
https://pruebaslba.xxxx.net/ServicioPyS/WSDL/ServiceWsdlModificado.Single.wsdl
<wsdl:service name="ActualService">
<wsdl:port name="ActualServiceEndPoint"binding="tns:ActualServiceEndPoint">
<soap:addresslocation="https://pruebaslba.xxxx.net/ServicioPyS/Service.svc/Service.svc"/>
</wsdl:port>
</wsdl:service>
Я думаю, , есть еще одно хорошее решение с хорошей практикой. Я не знаю.
Веб-сайт в IIS не поддерживает SSL, а в NLB - SSL.
Может быть, «SSL сквозная», я не знаю
http://blog.tonysneed.com/2012/06/18/building-scalable-and-secure-wcf-services/
Есть предложения?
Вы добавили привязку https для своего веб-сайта в IIS? – Thuan
@Thuan SSL не включен на веб-сайте IIS. Только в NLB F5. Возможно, полезный SSL-проход, я не знаю об этом. Связывание сайтов *** http hostname: pruebaslba.xxxx.net и порт 80 ** - это URL-адрес NLB (Load Balanced, F5) *** – Kiquenet