WCF:我一定要听频道吗?如果我使用ChannelFactory并为每个操作创建通道,则会出现故障事件

本文关键字:创建 通道 操作 故障 事件 ChannelFactory 频道 WCF 如果 | 更新日期: 2023-09-27 18:12:50

在使用ChannelFactory.CreateChannel()对服务执行操作之前,我每次都创建通道。在操作结束时,如果有任何异常,我将关闭通道或中止通道。

由于我每次都创建一个通道,我是否必须收听"Faulted"事件?

顺便说一句,当所有的事情都由通道完成时,为什么channelFactory有Faulted事件?

或者-当这个工厂创建的任何通道发生故障时,它会被触发吗?

提前感谢,做梦的人!

WCF:我一定要听频道吗?如果我使用ChannelFactory并为每个操作创建通道,则会出现故障事件

侦听Faulted事件的唯一原因是,如果事件发生,我想做一些特别的事情(而不是中止通道)。我一时想不出一个使用它的理由——但这并不意味着没有理由。

在您的例子中,如果在发生错误时中止通道,那么就没有问题——您不需要处理Faulted事件。

FactoryChannel<T>实现iccommunicationobject,定义故障事件。MSDN表示"为系统中所有面向通信的对象定义基本状态机的契约,包括通道、通道管理器、工厂、侦听器、调度器和服务主机。"

FactoryChannel<T>.CreateChannel返回一个类型的信道,它也实现了iccommunicationobject。