Wcf Http и Https - PullRequest
       7

Wcf Http и Https

1 голос
/ 07 февраля 2011

Помогите, пожалуйста !!

У меня отлично настроены следующие параметры: -

  1. Сервисная библиотека WCF, размещенная на веб-сайте локального IIS 7

  2. Приложение Silverlight на веб-сайте на локальном IIS 7 с использованием вышеуказанных служб

Решение, которое я пишу, предназначено для внутренней сети, а не для использования в Интернете, однако я ужемои начальники сказали, что это должно быть за Https.Я использую аутентификацию Windows.

Ниже приведен фрагмент файла конфигурации для одной из конечных точек службы (изменен для удаления информации о компании и т. Д.): -

<services>
  <service behaviorConfiguration="stdHttpBehavior" name="WcfServiceLibrary.StaticDataService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="windowsHttpBinding"
      name="StaticDataService" contract="WcfServiceLibrary.ServiceContracts.IStaticDataService" />
    <endpoint address="mex" binding="mexHttpBinding" name="" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/WcfServiceLibrary/StaticDataService/" />
      </baseAddresses>
    </host>
  </service>

<behaviors>
  <serviceBehaviors>
    <behavior name="stdHttpBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>
</behaviors>

Чтобы поэкспериментировать с Https, я создал «Самоподписанный сертификат».Затем я добавил https к привязкам веб-сайтов по умолчанию и изменил два веб-сайта на требование SSL, а также изменил соответствующие URI в файлах конфигурации.Мне удалось заставить это работать, но теперь я хочу вернуться к стандартной Http и завершить проект в этом режиме, так как с ним было легче работать.Я изменил все настройки обратно (и проверил их очень тщательно).

Теперь я получаю эту ошибку, если пытаюсь загрузить определение службы в проекте Silverlight: -

'Не удалосьнайти базовый адрес, который соответствует схеме https для конечной точки с привязкой BasicHttpBinding.Схемы зарегистрированных базовых адресов: [http]. '

Если я верну сертификат и привязку в IIS.Определение службы, по-видимому, загружается нормально, однако оно ссылается на UTPS https, и поэтому ни один из реальных вызовов службы не работает, поскольку они являются адресами http!

Я попытался добавить новый веб-сайт для размещения службы, но получил тот жеошибки.

Я пытался решить эту проблему последние пару дней, но не могу найти ответ.Кажется, что где-то есть скрытая ссылка, а не в моем проекте, поскольку это продолжилось с новым веб-сайтом, добавленным в IIS.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Чтобы использовать SSL через HTTP в привязке Basic HTTP, необходимо переключить конечную точку для использования безопасности транспортного уровня. В вашем случае вы также захотите указать тип учетных данных клиента:

<bindings>
  <basicHttpBinding>
    <binding name="windowsHttpBinding">
      <security mode="Transport">
        <transport clientCredentialType="Windows" />
        <message />
      </security>
     </binding>
  </basicHttpBinding>
</bindings>
2 голосов
/ 07 февраля 2011

Может показаться очевидным, но вы изменили режим безопасности в конфигурации привязки windowsHttpBinding на BasicHttpSecurityMode.None?

<bindings>
  <basicHttpBinding>
    <binding name="windowsHttpBinding">
      <security mode="None" />
     </binding>
  </basicHttpBinding>
</bindings>

Связанные ресурсы:

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