【发布时间】:2011-11-23 22:58:32
【问题描述】:
我有一个 WCF 服务操作,它接受一个字节数组作为其数据协定的一部分。该服务仅在内部公开(不向互联网公开),我想增加配额以允许 10MB 字节数组。
该服务托管在 IIS7 中。当我尝试发送超过默认长度的字节数组时,我收到以下异常消息:
反序列化类型对象时出错 MyService.ServiceContracts.Data。最大数组长度配额 读取 XML 数据时已超出 (16384)。这个配额可能是 通过更改 MaxArrayLength 属性来增加 创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象。 第 1 行,位置 22991。
这是配置:
<system.serviceModel>
<netTcpBinding>
<binding name="largeBinaryBinding" maxReceivedMessageSize="10001000"
maxBufferPoolSize="80008000" maxBufferSize="10001000"
receiveTimeout="00:01:00" openTimeout="00:01:00"
closeTimeout="00:01:00" sendTimeout="00:01:00">
<readerQuotas maxArrayLength="10000000" />
</binding>
</netTcpBinding>
<services>
<service name="MyService">
<endpoint binding="netTcpBinding"
bindingConfiguration="largeBinaryBinding"
bindingNamespace="http://my.services.co.uk/MyService"
contract="Services.MyService.ServiceContracts.IMyService" />
</service>
</services>
</system.serviceModel>
所以我的配置允许更大的消息,但 IIS 似乎忽略了这一点 - 我如何阻止它并允许大消息通过?
【问题讨论】:
标签: wcf iis-7 nettcpbinding was