Предоставленная схема URI 'https' недопустима; ожидаемый 'http'. Название параметра: через

Я пытаюсь сделать сервис WCF по basicHttpBinding, который будет использоваться по https. Вот мой web.config:

<!-- language: xml -->
<service behaviorConfiguration="MyServices.PingResultServiceBehavior"
         name="MyServices.PingResultService">
    <endpoint address="" 
              binding="basicHttpBinding" 
              bindingConfiguration="defaultBasicHttpBinding"
              contract="MyServices.IPingResultService">
        <identity>
            <dns value="localhost" />
        </identity>
    </endpoint>
    <endpoint address="mex" 
              binding="mexHttpBinding" 
              contract="IMetadataExchange" />
</service>
...
<bindings>
  <basicHttpBinding>
    <binding name="defaultBasicHttpBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
...
<behaviors>
  <serviceBehaviors>
    <behavior name="MyServices.UpdateServiceBehavior">
      <serviceMetadata httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

Я соединяю использование WCFStorm, который может получить все метаданные правильно, но когда я называю фактический метод, я добираюсь:

Предоставленная схема URI 'https' недопустима; ожидаемый 'http'. Название параметра: через

271
задан Kjartan 21 May 2018 в 21:34
поделиться

2 ответа

Попробуйте добавление учетных данных сообщения в файл app.config, например:

<bindings> 
<basicHttpBinding> 
<binding name="defaultBasicHttpBinding"> 
  <security mode="Transport"> 
    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> 
    <message clientCredentialType="Certificate" algorithmSuite="Default" />
  </security> 
</binding> 
</basicHttpBinding> 
</bindings> 
231
ответ дан 23 November 2019 в 02:16
поделиться

Вы запускаете это на Cassini (против dev-сервера) или на IIS с установленным сертификатом? У меня были проблемы в прошлом, когда я пытался подключить безопасные конечные точки на веб-сервере разработчиков.

Вот конфигурация привязки, которая работала для меня в прошлом. Вместо basicHttpBinding используется wsHttpBinding. Я не знаю, является ли это проблемой для вас.

<!-- Binding settings for HTTPS endpoint -->
<binding name="WsSecured">
    <security mode="Transport">
        <transport clientCredentialType="None" />
        <message clientCredentialType="None"
            negotiateServiceCredential="false"
            establishSecurityContext="false" />
    </security>
</binding>

и конечная точка

<endpoint address="..." binding="wsHttpBinding"
    bindingConfiguration="WsSecured" contract="IYourContract" />

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

30
ответ дан 23 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: