wcf duplex large message对ReliableSessions的大型消息没有任何有意义的回复

时间:2011-12-05 14:20:58

标签: .net wcf wcf-binding nettcpbinding duplex

我正在使用NetTCP双工绑定将文档从服务器发送到客户端,如byte []。 当这个byte []非常大(比如10Meg)时,服务器退出

The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.

例如1 mb的较小消息确实很有效。 这是我web.config中的绑定

 <bindings>
  <netTcpBinding>
    <binding name="InsecureTcp" receiveTimeout="0:10:00" sendTimeout="0:05:00" portSharingEnabled="true" openTimeout="0:0:02" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxBufferSize="2147483647">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647"/>
      <security mode="None"/>
      <reliableSession enabled="true" ordered="true" inactivityTimeout="0:00:05"/>
    </binding>
  </netTcpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

更新1 看起来Reliable Session通过怀疑不活动来杀死连接。将文档推送到客户端需要5秒以上,因此通道(我猜)客户端出现故障。 但是:我有5秒的非活动时间,几乎在连接断开时立即得到通知,所以我可以实例化到服务器的新连接。

看起来这两个要求相互争斗

0 个答案:

没有答案