二重 WCF 接続で接続された 2 つのアプリケーションがあります。接続が一貫している限り、私はうまく機能します。
接続が失われ、再接続する必要がある場合に、再接続シナリオを処理する方法を確認しています。そして、WCFでこれがどのように機能するかを理解するのに苦労しています。
私の知る限り、IChannel
は消耗品ですが、ChannelFactory
高価です。そのため、1 つのファクトリを作成し、次にチャネルを作成します。Closed
チャネルでまたはFaulted
イベントを検出するたびにtry
、チャネルを閉じ、イベント ハンドラを切り離してから、別のチャネルを作成します。
しかし、このアプローチはうまく機能していませんDuplexChannelFactory<T>.CreateChannel
。
System.ServiceModel.CommunicationObjectAbortedException occurred
HResult=-2146233087
Message=The communication object, System.ServiceModel.InstanceContext, cannot be used for communication because it has been Aborted.
このように工場自体に障害が発生する可能性はありますか?
WCFで切断/再接続を処理する正しいアプローチは何ですか?