如果 POST 正文长度超过 8192 个字符,WCF 4.0 REST 项目将返回 400 Bad Request 错误。这是 XmlDictionaryReaderQuotas.MaxStringContentLength 属性的默认值。 XmlDictionaryReader 类用于反序列化过程,即使对于 JSON 消息也是如此。
我见过很多关于如何使用自定义绑定和端点解决 WCF 问题的示例,但没有针对使用简化配置的 WCF 4.0 REST 项目的解决方案。
普通的 web.config 文件包含如下所示的部分:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
首先,需要增加消息大小。为此,请将 maxReceivedMessageSize 添加到 standardEndpoint。
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="65535" />
要设置 MaxStringContentLength,请将以下内容添加到 system.serviceModel 部分:
<bindings>
<webHttpBinding>
<binding>
<readerQuotas maxStringContentLength="65535"/>
</binding>
</webHttpBinding>
</bindings>
您需要将长度设置为适合您环境的值。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)