C# WCF错误通信对象System.ServiceModel.Channels.ServiceChanne无法用于通信,因为它处于故障状态

C# WCF错误通信对象System.ServiceModel.Channels.ServiceChanne无法用于通信,因为它处于故障状态,c#,wcf,C#,Wcf,我们得到 通信对象System.ServiceModel.Channels.ServiceChannel无法用于通信,因为它处于故障状态 关闭应用程序时显示消息。有人能告诉我怎么修吗?我们知道这是一个通信通道试图关闭,但由于服务不可用或处于故障状态,无法关闭 我所能说的是,当服务不可用,但垃圾收集器试图销毁对象时,通信对象正在调用其服务关闭功能。我们得到了例外。看看代理项目 我们有一个类似的问题,这项技术解决了它。它基本上涉及从一个类继承,该类将在发生故障时自动重新创建通道。当您询问有关异常的问

我们得到

通信对象System.ServiceModel.Channels.ServiceChannel无法用于通信,因为它处于故障状态

关闭应用程序时显示消息。有人能告诉我怎么修吗?我们知道这是一个通信通道试图关闭,但由于服务不可用或处于故障状态,无法关闭


我所能说的是,当服务不可用,但垃圾收集器试图销毁对象时,通信对象正在调用其服务关闭功能。我们得到了例外。

看看代理项目


我们有一个类似的问题,这项技术解决了它。它基本上涉及从一个类继承,该类将在发生故障时自动重新创建通道。

当您询问有关异常的问题时,您应该发布整个异常,包括所有InnerException实例。您应该捕获异常,显示ex.ToString(),然后使用“throw”重新显示异常:

在这种情况下,我想知道代理实例化周围是否有一个using块:

using (var proxy = new WcfProxyClient())
{
    // Use of proxy
}
WCF中存在一个设计缺陷,使得它成为.NET中唯一不应该使用using块的地方。相反,你需要用手来做。看


另外,请参阅“”和“”。

不会回答,因为我无法告诉您其错误原因;但在试图关闭它之前,您可以随时检查它是否处于故障状态。仅供参考-链接已断开。@AlexR:谢谢。修正通过回程机,并增加了两个链接。
using (var proxy = new WcfProxyClient())
{
    // Use of proxy
}