Максимальная квота длины содержимого строки (8192)
Ошибка в десериализации тела ответного сообщения для операции "CreateTransactionEntity". Максимальная квота длины строки содержимого (8192) была превышена при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML.
Эй, я продолжаю получать эту ошибку, даже если у меня в моем файле web.config есть узел readerQuota, превышающий срок жизни...
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="BindingTcp" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" closeTimeout="00:10:00">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</netTcpBinding>
После просмотра Интернета на эту тему, я не могу найти приличный ответ. Если у вас есть какие-либо советы, я был бы очень признателен.
2 ответа
Чтобы убедиться, что значения, указанные для привязки, выбраны, вы должны назначить Имя привязки из <binding>
элемент к атрибуту bindingConfiguration объекта <endpoint>
элемент. Если вы этого не сделаете, WCF будет использовать значения по умолчанию для указанной привязки.
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="BindingTcp" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" closeTimeout="00:10:00">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</netTcpBinding>
В приведенном выше примере вы назначили "BindingTCP" в качестве имени в вашем <binding>
элемент. Так что в вашей конечной точке сделайте это:
<endpoint address="net.tcp://some.website.url/yourserivce" binding="netTcpBinding" bindingConfiguration="BindingTCP" contract="IYourContract" />
В зависимости от того, где находится ошибка (на клиенте или на сервере), будет определено, какой файл конфигурации необходимо изменить. Если ошибка происходит на обоих концах, измените оба файла конфигурации.
Вы должны проверить ваше клиентское приложение, чтобы узнать, использует ли оно конфигурацию привязки по умолчанию. Более быстрый способ подтвердить это - захватить трассировки WCF на подробном уровне и проверить события активности Construct ChannelFactory.
HTH, Амит Бхатия