通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态

时间:2013-04-06 04:25:56

标签: c# wpf c#-4.0 wpf-controls

Game

发生

错误:“通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态。”

由于app.config而发生错误?

有什么想法吗? 感谢

3 个答案:

答案 0 :(得分:0)

当您在服务器或客户端中收到未处理的异常时,通常会发生这种情况。你拥有的那个客户端已经不再好了,你需要创建一个新客户端。

如果在服务器端发生错误,您应该使用故障异常(它们不会使通道出错)。您还可以订阅this事件,以确切了解其发生的时间。

答案 1 :(得分:0)

虽然没有第一次机会异常出现在服务器上,但是我收到了这个错误,事件就是因为我收到的响应包括200k字节(pdf);我没有在配置文件中设置适当的设置以允许大尺寸和适当的超时:

<netTcpBinding>
    <binding name="NetTcpBinding_IExampleService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
        <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
    </binding>
</netTcpBinding>

如果错误消息更具体,那就太好了。

显然,我的2 GB限制不一定适合您的情况我会鼓励读者选择适合您特定用例的值。

答案 2 :(得分:0)

原因可能是您使用服务从其他程序或其他任何程序获取数据。例如,如果您使用的是技术服务版本1.2(请参阅web.config)以及例如billingService版本1.3(请参阅web.config),现在可能会发生您的结算服务与技术服务1.3而不是1.2相对应,那么您也会收到此错误