Я пытаюсь заставить веб-службу WCF работать с SSL, как вы можете себе представить, работает на моем компьютере , однако, когда я запускаю его в производственной среде, вместо этого я получаю:
Не удалось найти базовый адрес, который соответствует схеме http для конечной точки с привязкой BasicHttpBinding. Схемы зарегистрированных базовых адресов: [https].
Несмотря на многочасовую борьбу с этой проблемой, я все еще очень мало представляю, что на самом деле означает это сообщение об ошибке - поиск этого сообщения об ошибке находит множество людей, говорящих, что я должен либо указать адрес в конфигурации моей конечной точки, либо добавить базовый адрес к моей службе, однако:
- Мой сервис работал отлично, без указания SSL с отключенным
- На самом деле, мой сервис работает отлично с SSL с точно такой же конфигурацией на другом компьютере
- Кроме того, я нашел пост , который достоверно сообщает мне, что при хостинге под IIS базовый адрес в любом случае игнорируется.
Как вы, вероятно, можете сказать, я в настоящее время очень разочарован своей полной неспособностью выполнить то, что я считал относительно простой задачей, поэтому:
- Что на самом деле означает это сообщение об ошибке?
- Как определяются базовые адреса при хостинге под IIS?
- Где найти надежную, понятную документацию о том, что на самом деле означает вся моя скопированная конфигурация?
- Что мне нужно сделать, чтобы мой сервис действительно работал?
Интересные фрагменты моего web.config:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service name="MyService" behaviorConfiguration="MyBehavior">
<endpoint binding="basicHttpBinding" bindingConfiguration="SecureTransport"
bindingNamespace="http://MyNamespace/Service" name="Basic"
contract="MyContract" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="SecureTransport">
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>