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 является одним из Квоты не позволяют злонамеренному клиенту отправлять небольшое количество байтов, что приводит к большому выделению памяти на сервере.