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