WCF MaxStringContentLength

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

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

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

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

2 ответа

Решение

Это в байтах. По умолчанию 8K.

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

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

Другие вопросы по тегам