Невозможно активировать двоичную привязку http на сервере - PullRequest
8 голосов
/ 15 мая 2011

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

На сервере у меня есть привязка, объявленная так:

<customBinding>
    <binding name="binaryHttpBinding">
        <binaryMessageEncoding maxReadPoolSize="4096000" maxSessionSize="4096000" maxWritePoolSize="4096000">
            <readerQuotas maxDepth="32" maxStringContentLength="4096000"
            maxArrayLength="4096000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binaryMessageEncoding>
        <httpTransport maxBufferPoolSize="4096000" maxBufferSize="4096000" maxReceivedMessageSize="4096000"/>
    </binding>
</customBinding>

Служба настроена на ее использование (я думаю):

<service behaviorConfiguration="MyService.ServiceBehavior" name="MyService.ContentUploadService">
    <endpoint
        address=""
        binding="customBinding"
        bindingConfiguration="binaryHttpBinding"
        contract="MyService.IContentUpload"
        name="MyService.ContentUploadService"  />

Клиент имеетте же объявления:

<customBinding>
    <binding name="binaryHttpBinding">
        <binaryMessageEncoding maxReadPoolSize="4096000" maxSessionSize="4096000" maxWritePoolSize="4096000">
            <readerQuotas maxDepth="32" maxStringContentLength="4096000"
            maxArrayLength="4096000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binaryMessageEncoding>
        <httpTransport maxBufferPoolSize="4096000" maxBufferSize="4096000" maxReceivedMessageSize="4096000"/>
    </binding>
</customBinding>

И:

<endpoint
    address="http://foo.com/ContentUploadService.svc"
    binding="customBinding"
    bindingConfiguration="binaryHttpBinding"
    contract="MyService.IContentUpload"
    name="MyService.ContentUploadService"/>

Клиент, кажется, работает, но сервер выдает исключение, которое указывает, что привязка не установлена:

Приложение типа контента / soap + msbin1 было отправлено службе, ожидающей text / xml;кодировка = UTF-8.Привязки клиента и службы могут не совпадать.

Непосредственно перед этой ошибкой в ​​файле журнала возникает эта ошибка, возникающая при попытке открыть хост службы, что должно быть причиной.

Контекст оценки конфигурации не найден.

Ни одна из поисковых ссылок, которые я пробовал для этого сообщения, не была полезной.Итак, какую основную часть я пропускаю?

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Мне кажется, что ваша служба использует конфигурацию по умолчанию, что может произойти, если она не может найти явную конфигурацию.Убедитесь, что атрибут name элемента точно соответствует полному имени вашего класса обслуживания (включая пространство имен).

1 голос
/ 19 мая 2011

Вы пытались настроить хост на сервере для дополнения конечной точки?

Я думаю, что это будет примерно так:

<service behaviorConfiguration="MyService.ServiceBehavior" name="MyService.ContentUploadService">    
<host>
   <baseAddresses>
      <add baseAddress="http://foo.com/ContentUploadService.svc"/>
   </baseAddresses>
</host>
<endpoint address="" binding="customBinding" indingConfiguration="binaryHttpBinding" contract="MyService.IContentUpload" name="MyService.ContentUploadService" />

Надеюсь, это полезно

...