質問: WCF:ChannelFactoryを使用し、チャンネルごとにチャンネルを作成している場合、Channel.Faultedイベントを待機する必要がありますか ChannelFactory.CreateChannel()を使用してサービス上で操作を実行する前に、毎回チャンネルを作成しています。手術の終わりに、私はチャンネルを閉鎖するか、例外があれば中止します。 毎回チャンネルを作成しているので、「フォールト」イベントに耳を傾ける必要があります。 Btw、なぜchannelFactoryがFaultedイベントを持っているか、すべてのものがチャンネルによって完了したとき。 または、この工場で作成されたチャンネルのいずれかにフォルトが発生した場合に発生しますか? 前もって感謝します、 ドリーマー!
回答: 私がFaultedイベントを聞く唯一の理由は、イベントが発生した場合(チャンネルを中止する以外に)何か特別なことをしたい場合です。私は頭の上から、それを使う理由を考えることはできませんが、そうではないというわけではありません。 あなたのケースでは、エラーが発生したときにチャンネルを中断していれば、あなたはうまくいます。あなたはFaultedイベントを処理することを望んでいません。 `FactoryChannel` implements ICommunicationObject, which defines a faulted event. MSDN says "Defines the contract for the basic state machine for all communication-oriented objects in the system, including channels, the channel managers, ***factories***, listeners, and dispatchers, and service hosts." `FactoryChannel.CreateChannel` returns a type of IChannel, which also implements ICommunicationObject.