根据文档和文章,如果遇到意外的异常/错误,建议在客户端代理上调用Abort()。请参阅以下(简化):
MyServiceClient proxy = null;
try {
proxy = new MyServiceClient();
proxy.DoSomething();
proxy.Close();
} catch (Exception ex) {
if (proxy != null)
proxy.Abort();
}
是否有可能调用Abort()自己抛出异常?对Abort()的调用应该在自己的try / catch中吗?
答案 0 :(得分:4)
不,Abort不会失败(但.Close()或.Dispose()可能)。调用.Abort()是终止频道的“大锤”方法 - 无论正在进行的消息处理如何,它都会被拆除。
只能小心使用 - 例如在调用.Close()失败的异常catch案例中。这才是真正的目的和正确的用途。
马克