WCF MaxStringContentLength - PullRequest
       29

WCF MaxStringContentLength

0 голосов
/ 01 июля 2011

Я превысил maxStringContentLength при передаче аргументов из WCF в WCF.

Не важно, я просто увеличу стоимость. Но у меня есть вопрос, прежде чем я сделаю:

Это размер по умолчанию 8192 в битах, байтах, символах, словах или как?!?!

Я был здесь (http://msdn.microsoft.com/en-us/library/system.xml.xmldictionaryreaderquotas.maxstringcontentlength.aspx), но, очевидно, это большой секрет, и никто не должен знать.

Ответы [ 2 ]

4 голосов
/ 01 июля 2011

Это в байтах.По умолчанию используется значение 8K.

Отредактировано для добавления
На самом деле документация в одном месте содержит символ, поэтому символы, вероятно, являются более правильным ответом.Тем не менее, байты работают, если вы имеете дело с обычными 255 символами ASCII, так как один байт = один символ.

1 голос
/ 01 июля 2011

Длина указана в буквах, как упоминал Тим (по сути это результат string.Length). Еще одна вещь, которую нужно добавить - корреляция между байтами и символами действительно зависит от используемой кодировки. Для обычного «текстового» XML, если вы используете UTF-8, каждый символ может быть представлен 1, 2 или 3 байтами. Если вы используете UTF-16, это будет всегда 2 байта на символ. Если вы используете двоичный XML (т. Е. С BinaryMessageEncodingBindingElement), возможно, у вас есть словарные строки в содержимом, и они могут занимать всего несколько байтов, но их можно расширить до больших строковых значений - и MaxStringContentLength является одной из квот, запрещающих вредоносному клиенту отправлять небольшое количество байтов, что приводит к большому выделению памяти на сервере.

...