Конфигурация WCF для WebHttpBinding (Restful) для поддержки как HTTP, так и HTTPS - PullRequest
0 голосов
/ 18 июня 2010

Мы используем раскрывающийся список AJAX Cascading и функцию автозаполнения с Restful WebService Services, предоставляющими данные. С одной конечной точкой (незащищенной) все работало нормально, пока мы не попробовали ту же самую веб-страницу с https. Наше веб-приложение должно поддерживать оба. Наших из очень немногих статей / блогов по этому вопросу я нашел 2, что относится к моим требованиям.

  1. http://blog.abstractlabs.net/2009/02/ajax-wcf-services-and-httphttps.html
  2. http://www.mydotnetworld.com/post/2008/10/18/Use-a-WCF-Service-with-HTTP-and-HTTPS-in-C.aspx

Я следовал тому же шаблону, добавил 2 конечные точки, предполагая, что WCF подберет соответствующую конечную точку, просматривая протокол HTTP или HTTPS. Работал как чудо на моей машине разработчика (XP-IIS5) и 1 Server 2003R2 (IIS6), однако работал на производственном сервере 2003-IIS6. Веб-сайт в IIS точно такой же (включая разрешение и т. Д.). Выдает ошибку - Ошибка 500 (Не удалось найти базовый адрес, который соответствует схеме https для конечной точки с привязкой WebHttpBinding. Зарегистрированные схемы базовых адресов: [http] ..)

Вот пример конфигурации (игнорируйте опечатки)

<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="SecureBinding">
          <security mode="Transport"/>
        </binding>
      </webHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="SearchServiceAspNetAjaxBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service name="SearchService">
        <endpoint address="" behaviorConfiguration="SearchServiceAspNetAjaxBehavior"
            binding="webHttpBinding" contract="SearchServiceContract" />
       <endpoint address="" behaviorConfiguration="SearchServiceAspNetAjaxBehavior"
            binding="webHttpBinding" bindingConfiguration="SecureBinding" contract="SearchServiceContract" />
      </service>
    </services>
  </system.serviceModel>

Любая помощь по этому вопросу высоко ценится?

Спасибо KSS

1 Ответ

0 голосов
/ 18 июня 2010

Я использую почти такую ​​же конфигурацию в своем сервисе, хотя мое поведение конечной точки ссылается на <webHttp /> вместо <enableWebScript />. Вы упомянули, что ваши серверы одинаковы, но в любом случае вы пытались проверить SSL-трафик в другом месте на уязвимом сервере?

...