WCF SSL веб-сервис на основе Rest с базовой аутентификацией - PullRequest
1 голос
/ 04 октября 2011

У меня развернут простой сервис на основе WCF REST (разработка курса) с использованием SSL.Я пытаюсь заставить его работать с базовой аутентификацией, но, откровенно говоря, с ним ничего не получается.

RIS на основе REST - Использование webHttpBinding

Вот как выглядит мой web.config ...только соответствующие части:

  <system.serviceModel>
    <services>
      <service behaviorConfiguration="ThisTestService.MyTestServiceBehavior"
        name="ThisTestService.MyTestService">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="Secure" behaviorConfiguration="WebBehavior" contract="ThisTestService.IMyTestService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration="Secure" contract="IMetadataExchange"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ThisTestService.MyTestServiceBehavior">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="WebBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="Secure">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic"/>
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

У меня отключена анонимная проверка подлинности в IIS в виртуальном каталоге для службы WCF, и включена обычная проверка подлинности.

Когда я пытаюсь получить к нему доступиспользуя https://localhost/ThisTestService/MyTestService.svc, Я не могу добраться до него.Это дает сообщение «Не удалось найти базовый адрес, который соответствует схеме http для конечной точки с привязкой WebHttpBinding. Зарегистрированные схемы базовых адресов: [https].».

Я много гуглил, но пока все мои попыткипонять и исправить проблему было напрасно.Если я использую анонимную аутентификацию, то у меня нет проблем, однако мне нужно использовать базовую аутентификацию.

Любая помощь очень ценится.Спасибо.

1 Ответ

0 голосов
/ 06 октября 2011

Вам необходимо включить https для виртуального каталога, в котором вы размещаете сервис.(Как объяснено в последнем абзаце этой статьи: http://msdn.microsoft.com/en-us/library/aa751792.aspx)

...