0

我的项目中有一些关键问题。在与(wcf + netTCP)的交易期间,我得到了例外。

The communication object, 
System.ServiceModel.Channels.ClientFramingDuplexSessionChannel, 
cannot be used for communication because it is in the Faulted state.

在 WCF 服务 app.config 中添加具有超时规范的绑定标记。但我的交易已在 10 分钟内结束。是什么问题。。

 <bindings>
      <basicHttpBinding>
        <binding name="ServiceSoap" closeTimeout="0:01:00" openTimeout="0:01:00" receiveTimeout="10:00:00" sendTimeout="10:00:00" allowCookies="false"
          bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
          maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
          messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
          useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
      <netTcpBinding>
        <binding name="b1" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="infinite" sendTimeout="10:00:00"

transferMode="Buffered"

maxBufferPoolSize="524288"

maxBufferSize="65536"

maxConnections="10"

maxReceivedMessageSize="65536">
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>

谁来帮帮我!!!..

4

3 回答 3

4

我不确定你为什么认为它是超时问题?错误消息并不表明发生了超时。服务器会抛出异常吗?

我强烈建议设置WCF 跟踪。它有点涉及但确实值得做,因为我已经用它解决了许多晦涩的 WCF 问题。

于 2011-04-07T13:31:34.620 回答
2

尝试将此添加到您的 netTcpBinding:

<reliableSession inactivityTimeout="infinite" enabled="true" />

如果这不起作用,请启用 WCF 跟踪以找出杀死它的原因。

于 2011-04-07T13:17:58.373 回答
1

这不是一个完整的答案,但如果您在同一台机器上使用客户端+服务器,您可以使用命名管道绑定而不是 netTcp

配置的绑定部分可能如下所示。

<netNamedPipeBinding>
  <binding name="infiniteOpenBindingConfig" receiveTimeout="infinite" closeTimeout="infinite">
  </binding>
</netNamedPipeBinding>

要使绑定无限期地保持活动状态,必须在服务器和客户端上都设置上述配置。

于 2011-04-07T07:51:13.333 回答