У нас есть интересная проблема с привязкой WCF и режимом потоковой передачи, которую мы не можем решить:
У нас есть конечная точка WCF, настроенная на режим потоковой передачи.Конечная точка получает сообщение, намного превышающее размер по умолчанию (~ 65 КБ).Поэтому мы указали больший размер сообщения в атрибуте maxReceivedMessageSize тега привязки.
Проблема заключается в том, что мы соединяем конечную точку и привязку с помощью атрибута bindingConfiguration для тега конечная точка и атрибута name на привязка , мы получаем следующую ошибку: «Удаленный сервер возвратил ошибку: (400) неверный запрос».
Как только мы удалим оба атрибута bindingConfiguration и имя работает без ошибок.
Вот определение службы конечная точка :
<service name="Services.DocumentService" behaviorConfiguration="ServiceBehavior">
<endpoint contract="ServiceContracts.IDocumentService" address="DocumentService"
binding="basicHttpBinding" name="basicHttpBinding"
bindingConfiguration="BindingConfiguration" <---- when this goes away
behaviorConfiguration="ServiceEndpointBehavior"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/Documents/"/>
</baseAddresses>
</host>
</service>
Вот конфигурация привязки :
<binding
name="BindingConfiguration" <---- and when this goes away
transferMode="Streamed" maxReceivedMessageSize="2147483647" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
Таким образом, она работает только как привязка по умолчанию (без явно названного ключа).Странно то, что мы смогли проверить на хосте Сервиса, что конфигурация привязки действительно применяется (maxReceivedMessageSize был установлен правильно) в обоих сценариях.Может ли это быть ошибкой в WCF?
Служба работает самостоятельно.
Любые идеи очень ценятся?