可以在IClientChannel代理上调用Abort()会抛出异常吗?

时间:2009-09-13 19:13:20

标签: wcf proxy wcf-client abort

根据文档和文章,如果遇到意外的异常/错误,建议在客户端代理上调用Abort()。请参阅以下(简化):

MyServiceClient proxy = null;
try {
    proxy = new MyServiceClient();
    proxy.DoSomething();
    proxy.Close();
} catch (Exception ex) {
    if (proxy != null)
        proxy.Abort();
}

是否有可能调用Abort()自己抛出异常?对Abort()的调用应该在自己的try / catch中吗?

1 个答案:

答案 0 :(得分:4)

不,Abort不会失败(但.Close()或.Dispose()可能)。调用.Abort()是终止频道的“大锤”方法 - 无论正在进行的消息处理如何,它都会被拆除。

只能小心使用 - 例如在调用.Close()失败的异常catch案例中。这才是真正的目的和正确的用途。

马克

相关问题