Предоставленная схема URI «https» недействительна; ожидаемый http Имя параметра: через - PullRequest
263 голосов
/ 12 марта 2010

Я пытаюсь сделать службу 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 Имя параметра: через

Ответы [ 12 ]

2 голосов
/ 13 марта 2013

Чтобы перефразировать вопрос в ОП:

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

Предоставленная схема URI «https» недействительна; ожидаемый http Имя параметра: через

В руководствах WCFStorm эта проблема решена в Работа с IIS и SSL .

Их решение сработало для меня:

  1. Чтобы исправить ошибку, создайте конфигурацию клиента, которая соответствует конфигурации службы wcf. Самый простой способ сделать это с помощью Visual Studio.

    • Откройте Visual Studio и добавьте ссылку на службу. VS сгенерирует файл app.config, соответствующий сервису

    • Отредактируйте файл app.config, чтобы он мог быть прочитан WCFStorm. См. Загрузка файлов клиентских приложений.config . Убедитесь, что атрибуты конечной точки / @ name и endpoint / @ contract соответствуют значениям в wcfstorm.

  2. Загрузите измененный файл app.config в WCFStorm [используя кнопку toobar Client Config].

  3. Вызовите метод. На этот раз вызов метода больше не завершится ошибкой

Элемент (1) последнего действующего маркера означает удалить префикс пространства имен , который VS добавляет к атрибуту контракта конечной точки, по умолчанию "ServiceReference1"

<endpoint ... contract="ServiceReference1.ListsService" ... />

поэтому в app.config, который вы загружаете в WCFStorm, вы хотите использовать ListsService:

<endpoint ... contract="ListsService" ... />
1 голос
/ 07 декабря 2010

wsHttpBinding - проблема, потому что silverlight ее не поддерживает!

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