0

我的客户端正在使用一个抛出异常的 WCF 服务(例外:通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于故障状态)。所有后续调用都抛出相同的异常。

我在互联网上读到客户端需要关闭()/中止()通道,这将解决问题。完全正确吗?

另外我正在使用服务开发人员提供的客户 serviceChannel 工厂。当我创建通道时,它不显示关闭和中止方法。那么,当我在客户端创建自定义服务通道实例时,如何获得这些关闭和中止方法呢?

4

1 回答 1

0

假设您有一个实现 IClientChannel 接口的代理实例,这里有一种方法(希望是正确的方法)来使用它。

IClientChannel clientChannel = (IClientChannel)proxy;
bool success = false;

try
{
    // do something with the proxy
    clientChannel.Close();
    success = true;
}
finally
{
    if (!success)
    {
        clientChannel.Abort();
    }
}

您可能还想检查一下。您可以使用共享类或函数来包装您的操作。

于 2012-09-20T12:55:56.397 回答