【发布时间】:2008-11-19 21:15:03
【问题描述】:
我有一个 Windows 控制台应用程序,它托管从 MSMQ 读取的 WCF 服务。当消息大小达到 7k 到 8k 左右时,服务会读取它(即它从 Q 中消失),但不会调用相应的函数。没有抛出异常。有人对正在发生的事情或在哪里寻找解决此问题有任何线索吗?
【问题讨论】:
我有一个 Windows 控制台应用程序,它托管从 MSMQ 读取的 WCF 服务。当消息大小达到 7k 到 8k 左右时,服务会读取它(即它从 Q 中消失),但不会调用相应的函数。没有抛出异常。有人对正在发生的事情或在哪里寻找解决此问题有任何线索吗?
【问题讨论】:
我找到了问题所在。在托管应用程序/服务的 .config 文件中添加或更改默认为 8196 的 readerQuotas 元素的 maxStringContentLength 属性。
<bindings>
<netMsmqBinding>
<binding name="netMsmq">
<security mode="None" />
<readerQuotas
maxDepth="32"
maxStringContentLength="8196"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384"
/>
</binding>
</netMsmqBinding>
</bindings>
【讨论】: