5

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

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

是否有可能调用 Abort() 本身引发异常?对 Abort() 的调用是否应该在它自己的 try/catch 中?

4

1 回答 1

4

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

请谨慎使用它——例如,在调用 .Close() 失败时的异常捕获情况下。这是它的真正目的和正确使用。

马克

于 2009-09-13T19:42:07.733 回答