3

少し背景。.NET Framework 4を使用してC#で作業しWsHttpBindingています。現在、バインディングにはセキュリティがありません。ハートビートを1秒ごとにWCFサーバーに報告するWCFクライアントがあります。このハートビートは単なる符号なし整数です。

ネットワークケーブルを数分間引っ張ってから、再接続します。失われたすべてのハートビート値が殺到します。これを実現しているのは、どのWCF構成プロパティですか。私はそれらのメッセージがドロップされ、最新のハートビートが何であれ受信することを期待します。

4

2 に答える 2

2

説明によると、これはクライアントのWCFサービスのタイムアウトが長いことが原因である可能性があります。

リクエストは非同期であり、以前にサーバーとの接続を確立していたため、これは送信タイムアウトが原因であると予想されます。

これは、 WCFのタイムアウトとそのデフォルト値に関する優れたMSDNブログエントリです。

于 2012-08-01T17:11:09.567 に答える
1

これは、サービスのインスタンス化モードを指定していないことが原因である可能性があります。

そうでない場合は、デフォルトでセッションごとになります。これは、WCFランタイムがWS-ReliableMessagingと呼ばれるWS- *仕様の1つを実装していることを意味します。これは、セッションが確立されると、コンシューマーとサービス間のメッセージの配信を保証しようとします。

長時間(デフォルトでは10分だと思います)待つと、メッセージがドロップされた証拠が表示されるようになると思います。

または、呼び出しごとのインスタンス化モードでサービスを構成した場合、この動作は見られないと思います。

于 2012-08-01T17:43:24.140 に答える