WCF:我一定要听频道吗?如果我使用ChannelFactory并为每个操作创建通道,则会出现故障事件
本文关键字:创建 通道 操作 故障 事件 ChannelFactory 频道 WCF 如果 | 更新日期: 2023-09-27 18:12:50
在使用ChannelFactory.CreateChannel()对服务执行操作之前,我每次都创建通道。在操作结束时,如果有任何异常,我将关闭通道或中止通道。
由于我每次都创建一个通道,我是否必须收听"Faulted"事件?
顺便说一句,当所有的事情都由通道完成时,为什么channelFactory有Faulted事件?
或者-当这个工厂创建的任何通道发生故障时,它会被触发吗?
提前感谢,做梦的人!
侦听Faulted事件的唯一原因是,如果事件发生,我想做一些特别的事情(而不是中止通道)。我一时想不出一个使用它的理由——但这并不意味着没有理由。
在您的例子中,如果在发生错误时中止通道,那么就没有问题——您不需要处理Faulted事件。
FactoryChannel<T>
实现iccommunicationobject,定义故障事件。MSDN表示"为系统中所有面向通信的对象定义基本状态机的契约,包括通道、通道管理器、工厂、侦听器、调度器和服务主机。"
FactoryChannel<T>.CreateChannel
返回一个类型的信道,它也实现了iccommunicationobject。