Хорошо, я установил и протестировал небольшую симпатичную службу WCF. Клиент создает строку и передает ее в метод службы, а затем служба сохраняет ее как файл. Отлично работает с небольшими объемами тестовых данных, но когда я пытаюсь выполнить то, что он должен делать - передать несколько сериализованных объектов .net - он падает с ошибкой
Программа форматирования выдала исключение, пока пытаясь десериализовать сообщение: Ошибка десериализации тела запроса сообщение для операции максимальная строка Квота длины содержимого (8192) была превышена при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML
. Я смотрю на это и обнаруживаю, что свойство MaxStringContentLength должно быть установлено в теге «readerQuotas» в теге файла конфигурации, вот так:
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
Вот и меняю. Я меняю его в файле App.config своего клиента. Я меняю его в файлах App.config и Web.config своего сервера. Я меняю его в файле App.config моего проекта модульного тестирования. И ничего из этого не работает - я получаю ту же ошибку.
Интересно и досадно, когда я запустил WcfClient.exe, чтобы взглянуть на мою службу, подключенную к ней, и посмотреть файл конфигурации (Client. dll. config) Я был потрясен, обнаружив, что этот автоматически сгенерированный файл не содержал никаких моих изменений и был сброшен на:
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
Я понятия не имею, откуда он получает эти значения - нигде во всем моем решении они не устанавливаются. Значит, он должен использовать значения по умолчанию, но я не понимаю, почему он использует значения по умолчанию, когда я предоставил собственные файлы конфигурации и на сервере, и на клиенте.
Может ли кто-нибудь помочь мне распутать это?