繁体   English   中英

JSON对象包含长字符串时发生WCF(Rest)服务错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM