私はWindowsサービスでホストされている単純なWCFサービスを持っています。サービス自体は、完了までに10秒かかる長いトランザクションをシミュレートするだけです。私はまた、私はそれが呼び出されていることを知っているので、私のデータベースにエントリを記録するサービス内のコードを持っています、完了した操作...ここでは、サービス構成の要約は次のとおりです。NetTcpBinding WCF NetTcpBinding +単一インスタンス+単一同時実行性=コールのブロック/ドロップ?
-
次に、サービスメソッドを4回連続して呼び出すテストクライアントがあります。ログには、すべてが順番に実行され、以前の呼び出しでサービスが完了したときに複数のコールがキューに入れられ、サービスされることが期待されます。
しかし、私は唯一の第一のコールがログに記録され、残りは廃棄され見ることができます。各コールの間に15秒の間隔を置くと、すべてのコールが配信され、記録されます。私はあらゆる種類の設定(inactivityTimeout、listenBackLog、...など)を使いこなしましたが、何も助けませんでした。
私はここで何が欠けていますか?
はい、私は、単一のWCFクライアント側のプロキシを使用していますし、コードは次のようになります。)(Service1Clientクライアント=新しいService1Clientを。 client.StartProcess(); client.StartProcess(); client.StartProcess(); client.StartProcess();これらの設定ではシングルトンを作成しており、各コールは順次処理されます。私がこれを行う必要がある理由は、サービス内の操作を別の呼び出しで中断することができず、それぞれの要求をキューに入れて1つずつ処理する必要があるためです。また、クライアント側にエラーや障害はまったくありません。 – notlkk