2

游戏

发生错误:“通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为它处于故障状态。”

由于app.config而发生该错误?

有什么想法吗?谢谢

4

3 回答 3

1

我收到了这个错误,虽然服务器上没有出现第一次机会异常,但在我的情况下,这是因为我收到的响应包含 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 限制不一定适合您的情况,我鼓励读者选择适合您的特定用例的值。

于 2014-02-25T22:03:46.293 回答
0

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

如果错误发生在服务器端,您应该使用故障异常(它们不会导致通道故障)。您还可以订阅事件以确切知道它何时发生。

于 2013-04-06T04:39:04.317 回答
0

可能的原因是您使用服务从另一个程序或其他程序获取数据。例如,如果您使用 technicService 1.2 版(参见 web.config)和例如 billingService 1.3 版(参见 web.config),那么您的计费服务可能与 technicService 1.3 而不是 1.2 对应,那么您也会收到此错误

于 2016-09-28T08:44:01.443 回答