namedPipeバインディングを使用したoneWay呼び出しで、注文された配信を保証することは可能ですか?
namedPipeバインディングを使用して通信するWCFサービス/クライアントがあります。クライアントは、コールバック内のすべてのメソッドがOneWayとしてマークされているコールバックコントラクトを公開しています。このようなもの
[ServiceContract(CallbackContract = typeof(IMyServiceCallback))]
public interface IMyService
{
[OperationContract]
void MyOperation();
}
public interface IMyServiceCallback
{
[OperationContract(IsOneWay=true)]
void MyCallback1();
[OperationContract(IsOneWay=true)]
void MyCallback2();
}
サーバー側では、MyOperationメソッドの実装は常に最初にMyCallback1を呼び出し、次にMyCallback2を呼び出しますが、クライアントが誤った順序で呼び出しを受信することがあります(MyCallback2、次にMyCallback1)。
インターネットを検索したところ、ここで説明したように一方向の操作では順序が保証されておらず、メッセージの順序を保証するreliableSessionと呼ばれるものもあります。
信頼できるセッションのためのインターネット上のすべての例はTCPバインディングを使用したものであり(NamedPipeBindingを使用した単一の例ではありません)、tcpBindingにはNetNamedPipeBindingには存在しないReliableSessionというプロパティもあります。したがって、信頼できるセッションがNetNamedPipeBindingで機能することが期待されるかどうかはわかりません。
質問:
信頼できるセッションはnamedPipeBindingで機能しますか?はいの場合、どのように?いいえの場合、注文された配達を保証できる他のアプローチはありますか?