Пользовательская привязка WCF - тип содержимого не поддерживается службой - PullRequest
3 голосов
/ 08 июля 2010

Я определил пользовательскую привязку в моем файле web.config клиента и сервера, но когда я пытаюсь подключиться, я получаю эту ошибку, сервер работает под управлением IIS 7

Тип содержимого application / xml; charset = utf-8 не поддерживается службой http://localhost/contentservice.svc/PairService. Привязки клиента и службы могут не совпадать.

Сервер:

  <system.serviceModel>
  <client>
    <endpoint binding="customBinding"  bindingConfiguration="BinaryBinding" contract="Me.IContentService" name="ContentStagingEndpoint" />
  </client>
  <bindings>
    <customBinding>
      <binding name="BinaryBinding">
        <binaryMessageEncoding/>
        <httpTransport/>
      </binding>
    </customBinding>
  </bindings>
  </system.serviceModel>

Клиент:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="ContentService">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service behaviorConfiguration="ContentService" name="Me.ContentService">
      <endpoint address="" binding="customBinding"  bindingConfiguration="BinaryBinding" contract="Contracts.IContentService">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
  </services>
  <bindings>
    <customBinding>
      <binding name="BinaryBinding">
        <binaryMessageEncoding/>
        <httpTransport/>
      </binding>
    </customBinding>
  </bindings>
</system.serviceModel>

и вот код, который инициирует вызов:

var chan = New WebChannelFactory(Of IContentService)(New Uri("http://localhost/contentservice.svc")).CreateChannel();

chan.PairService();

1 Ответ

0 голосов
/ 09 июля 2010

Нашли решение, Я должен был использовать ChannelFactory вместо WebChannelFactory

var proxy =  ChannelFactory(Of IContentService).CreateChannel(New EndpointAddress("http://localhost/service.svc"))
...