如果在WCF中发生ChannelTerminatedException,则引发哪个事件为Faulted或Closed?

时间:2010-08-28 08:32:47

标签: c# .net wcf wcf-client

自我描述性

1 个答案:

答案 0 :(得分:2)

都不是。该频道仍处于开放状态。

在处理IsTerminating设置为True的操作后,服务器会将会话标记为已终止,后续调用将返回一个错误,其代码为SessionTerminated,转换为ChannelTerminatedException。

但是,如果在客户端设置了此属性,则在调用该操作后,它将自动将通道设置为“已关闭”。如果发生这种情况,尝试使用该通道将引发InvalidOperationException。

获得该异常的唯一方法是客户端不要设置该属性并相信该通道仍处于打开状态。 WCF不会关闭该通道以响应该错误,因此它仍然是Open。