https с ошибкой WCF: "Не удалось найти базовый адрес, соответствующий схеме https"

Я перехожу на сайт https://mywebsite/MyApp/Myservice.svc и получаю следующую ошибку:

(Ссылка работает, если я использую http:// )

" Служба '/MyApp/MyService.svc' не может быть активирована из-за исключения во время компиляции. Сообщение об исключении следующее: Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Зарегистрированные схемы базовых адресов: [http]."

EDIT: Если я изменю address="" на address="https:// ...", то вместо этого я получу эту ошибку:

"Ошибка: Протокол 'https' не поддерживается...... ChannelDispatcher по адресу 'https://.../Annotation.svc' с контрактом(ами) '"Annotation"' не может открыть свой IChannelListener."

Вот как выглядит мой Web.Config:

<services>
      <service behaviorConfiguration="AnnotationWCF.AnnotationBehavior"
              name="AnnotationWCF.Annotation">
              <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Annotation"
                      contract="AnnotationWCF.Annotation" />
              <endpoint address="" 
                  binding="basicHttpBinding" bindingConfiguration="SecureTransport"
                  contract="AnnotationWCF.Annotation" />
              <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
<bindings>
<basicHttpBinding>
    <binding name="BasicHttpBinding_Annotation" maxBufferSize="2147483647"
            maxReceivedMessageSize="2147483647">
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647"
            maxNameTableCharCount="2147483647" />
    </binding>
    <binding name="SecureTransport" maxBufferSize="2147483647"
            maxReceivedMessageSize="2147483647">
        <security mode="Transport">
        <transport clientCredentialType="None"/>
        </security>
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647"
            maxNameTableCharCount="2147483647" />
    </binding>
</basicHttpBinding>

У меня была точно такая же проблема. Кроме мое решение было добавить и"Ы" на привязку стоимости.

Стар: привязка="и mexHttpBinding и"

Новое: привязка="и mexHttpsBinding и"

веб -.фрагменте конфигурации:





Комментарии (0)
Решение

Оказалось, что моя проблема заключалась в том, что я использовал балансировщик нагрузки для обработки SSL, который затем отправлял его по http на реальный сервер, который затем жаловался.

Описание исправления здесь: http://blog.hackedbrain.com/2006/09/26/how-to-ssl-passthrough-with-wcf-or-transportwithmessagecredential-over-plain-http/

Edit: Я исправил свою проблему, которая была немного другой, после разговора со службой поддержки microsoft.

В коде моего приложения silverlight адрес конечной точки передавался по https на балансировщик нагрузки. Затем балансировщик нагрузки изменил адрес конечной точки на http и указал на реальный сервер, к которому он обращался. Поэтому в веб-конфиге каждого сервера я добавил listenUri для конечной точки, которая была http вместо https.

Комментарии (2)

Убедитесь, что SSL включен для вашего сервера!

Я получил эту ошибку при попытке использовать конфигурационный файл HTTPS на моем локальном компьютере, который не имеет такого сертификата. Я пытался провести локальное тестирование - преобразовать некоторые привязки с HTTPS на HTTP. Я подумал, что это будет проще сделать, чем пытаться установить самоподписанный сертификат для локального тестирования.

Оказалось, что я получаю эту ошибку, потому что у меня не включен SSL на моем локальном IIS, хотя я не собирался его использовать.

Было что-то в конфигурации для HTTPS. Создание самоподписанного сертификата в IIS7 позволило HTTP работать :-)

Комментарии (3)

Я думаю, что вы пытаетесь сконфигурировать свою службу примерно так, как показано ниже. Более подробная информация здесь: [Specify a Service with Two Endpoints Using Different Binding Values][1]. Также, кроме разработки, вероятно, не стоит иметь HTTP & HTTPS конечные точки для одной и той же службы. Это в некотором роде разрушает цель HTTPS. Надеюсь, это поможет!

Комментарии (1)

В моем случае я устанавливаю режим безопасности, чтобы "TransportCredentialOnly на" вместо "на транспорте" в силу. Изменение это решенный вопрос









Комментарии (0)

Посмотри на свой базовый адрес и адрес конечной точки (может'т вижу это в вашем примере кода). скорее всего вы пропустили колонну или другую описку например, HTTPS// вместо HTTPS://

Комментарии (0)

Я был с помощью webhttpbinding и забыл dicate режим безопасности на "Транспорт" на конфигурацию привязки, который вызвал ошибку:





Добавление в конфигурацию Исправлена проблема.

Комментарии (0)