Ошибка WCF - не удалось найти базовый адрес, соответствующий схеме - PullRequest
0 голосов
/ 05 июля 2010

Я пытаюсь заставить веб-службу 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>

1 Ответ

0 голосов
/ 05 июля 2010

Одна вещь, которая находится вне поля, но может вызывать это сообщение, - это если срок действия сертификата SSL на сервере истек или установлен неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...