Я понимаю, что этот вопрос задавали "десятки раз"
https://stackoverflow.com/search?q=maxStringContentLength
Однако я до сих пор не нашел решения, соответствующего моим потребностям. У меня есть приложение MVC3 , подключающееся к приложению REST, которое было построено в WCF 4.0 .
Пока у меня есть ...
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json" crossDomainScriptAccessEnabled="true" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</webHttpEndpoint>
</standardEndpoints>
Серверная часть REST работает. Это позволяет мне передавать большую модель с длинным строковым значением в качестве одного из ее свойств. Я подтвердил это в своем приложении MVC, когда опубликовал модель с большим битом данных, и увидел, что эти данные сделаны в БД.
Когда приложение завершило публикацию и попыталось запросить данные, которые оно только что сохранило, я получаю печально известную ошибку, когда оно пытается сериализовать мою модель ...
Превышена максимальная квота длины содержимого строки (8192) при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании средства чтения XML.
Я пробовал много вещей, таких как
<bindings>
<webHttpBinding>
<binding>
<readerQuotas maxStringContentLength="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
Я получаю остальные данные, используя WebChannelFactory , а затем создаю канал для интерфейса.
string uri = "http://localhost/RestService";
WebChannelFactory<IRestService> _cf = new WebChannelFactory<IRestService>(new Uri(uri));
IRestService service = _cf.CreateChannel();
Но пока ничего не получалось. Что-то мне не хватает в моем приложении MVC3, которое позволит правильно сериализовать модель?
Я знаю, что в WCF 4 нет файла .svc, , нет привязок и тому подобного, но я не знаю, что мне нужно добавить в приложение MVC, чтобы разрешить настройку по умолчанию для REST для изменения.