我的网络方法一直存在错误,调查最终揭示了以下内容:
格式化程序抛出异常 试图反序列化消息: 反序列化请求主体时出错 操作'SendFirmware'的消息。 最大数组长度配额(16384) 读取XML时已超出 数据。这个配额可能会增加 更改MaxArrayLength属性 在XmlDictionaryReaderQuotas上 创建XML时使用的对象 阅读器。
有问题的数组是byte[]
,其中包含方法名称中提到的固件映像。这就是它有这么多元素的原因。好的,非常好,现在我知道什么是错的,如果我明确地管理XML就不会有问题。但我不是,这一切都是隐含的。
如何在配置文件中为Web服务设置此项?
答案 0 :(得分:6)
可以在以下部分的web.config文件中设置:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="8388608"
maxArrayLength="16384" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>