我的客户端正在使用一个抛出异常的 WCF 服务(例外:通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于故障状态)。所有后续调用都抛出相同的异常。
我在互联网上读到客户端需要关闭()/中止()通道,这将解决问题。完全正确吗?
另外我正在使用服务开发人员提供的客户 serviceChannel 工厂。当我创建通道时,它不显示关闭和中止方法。那么,当我在客户端创建自定义服务通道实例时,如何获得这些关闭和中止方法呢?
假设您有一个实现 IClientChannel 接口的代理实例,这里有一种方法(希望是正确的方法)来使用它。
IClientChannel clientChannel = (IClientChannel)proxy;
bool success = false;
try
{
// do something with the proxy
clientChannel.Close();
success = true;
}
finally
{
if (!success)
{
clientChannel.Abort();
}
}
您可能还想检查一下。您可以使用共享类或函数来包装您的操作。