发生
错误:“通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态。”
由于app.config而发生错误?
有什么想法吗? 感谢
答案 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相对应,那么您也会收到此错误