我意识到这个问题已被问过“数十次”
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应用程序验证了这一点,因为我发布了大量数据的模型,并看到数据在数据库中生成。
当应用程序完成帖子并尝试请求刚刚保存的数据时,我在尝试序列化模型时遇到了臭名昭着的错误......
读取XML数据时已超出最大字符串内容长度配额(8192)。通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性,可以增加此配额。
我尝试过很多东西,比如
<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。