Я получаю это исключение, хотя я буквально скопировал конфигурацию привязки с сервера в конфигурацию клиента.
Сторона клиента:
<client>
<endpoint
address="http://localhost/ConfiguratorServer"
binding="netHttpBinding"
bindingConfiguration="BindingConfiguratorServer"
contract="<redacted>.IConfiguratorServer" />
</client>
<bindings>
<netHttpBinding>
<binding
name="BindingConfiguratorServer"
messageEncoding="Binary"
transferMode="Streamed"
maxReceivedMessageSize="1000000000"
openTimeout="00:00:30"
closeTimeout="00:00:30"
sendTimeout="00:10:00"
receiveTimeout="00:10:00">
<readerQuotas maxStringContentLength="1000000000" maxArrayLength="1000000000" />
<security mode="None" />
<webSocketSettings transportUsage="WhenDuplex" />
</binding>
</netHttpBinding>
</bindings>
Сторона сервера:
<services>
<service name="<redacted>.ConfiguratorServer">
<endpoint
address=""
binding="netHttpBinding"
bindingConfiguration="BindingConfiguratorServer"
contract="<redacted>.IConfiguratorServer" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/ConfiguratorServer" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netHttpBinding>
<binding
name="BindingConfiguratorServer"
messageEncoding="Binary"
transferMode="Streamed"
maxReceivedMessageSize="1000000000"
openTimeout="00:00:30"
closeTimeout="00:00:30"
sendTimeout="00:10:00"
receiveTimeout="00:10:00">
<readerQuotas maxStringContentLength="1000000000" maxArrayLength="1000000000" />
<security mode="None" />
<webSocketSettings transportUsage="WhenDuplex" />
</binding>
</netHttpBinding>
</bindings>
1) Это работает для многих соединений, но не для тех, которые могут заподозрить нарушение предполагаемого предела 8192.
2) Я создаю дуплексный канал из кода, и привязка фабрики дуплексных каналов (на стороне клиента) содержит maxStringContentLength = 1000000000
.Я не понимаю.
Что здесь не так?
Полное исключение:
Произошла ошибка десериализации объекта типа System.Объект.Максимальная квота длины строки содержимого (8192) была превышена при чтении данных XML.Эту квоту можно увеличить, изменив свойство MaxStringContentLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML.
РЕДАКТИРОВАТЬ:
Теперь я переключил messageEncoding
на Text
и это работает.Я озадачен.
РЕДАКТИРОВАТЬ 2:
В тестовом сценарии.Я отправляю массивы байтов произвольной длины от 10 до 20 тысяч.Я определил, что предел составляет 16384 , а не 8192 .Binary
+ Streamed
(или StreamedResponse
) не работает должным образом для размеров выше 16k.Это какое-то ограничение?