[英]WCF (Rest) service errors when JSON object has a long string
我有一个使用WebServiceHostFactory(REST)实现的WCF服务。
我将服务端点称为POST,以发送具有字符串属性的json对象。
这可以工作到一定程度,但似乎如果该字符串的长度变得太长(不确定确切的长度(8000个字符有效,但9000个字符无效...我没有尝试,但是“断点”可能是8192))。
我尝试检查回叫中的StatusCode,这对于较小的字符串来说效果很好,但是当字符串“太长”时,下面的代码将出现以下错误:
System.Net.WebException: The remote server returned an error: NotFound.
回调代码:
var request = (HttpWebRequest)result.AsyncState;
var response = (HttpWebResponse)request.EndGetResponse(result);
我试图找出问题出在哪里,因为该服务存在,并且仅在字符串太长时才得到此消息。
是json对象的大小吗? 是我的服务定义吗? WCF中有这个东西吗?
谢谢
我认为这是来自读者配额的MaxStringContentLength属性的问题。 它的默认值的确是8192。您可以在绑定配置中更改该值:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="LargeString">
<readerQuotas maxStringContentLength="16000" />
</binding>
</webHttpBinding>
</bindings>
</system.serviceModel>
在端点配置中引用此绑定配置:
<endpoint address="..." contract="..." binding="webHttpBinding" bindingConfiguration="LargeString" />
对于WCF 4.0,您可以在绑定定义中省略名称,并且应将其用作所有webHttp端点的默认配置。
我不知道原因就可以想到。 可能您超过了最大邮件长度? 可以在您的App.Config文件中设置。
如果您要传输大量数据,则可以使用流传输或构建自己的API,就像游标在SQL中工作一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.