WCF サーバーは、変更について WCF クライアントにどのように通知しますか?も参照してください。(コメントや長いポーリングなど、単純なポーリングよりも優れたソリューション)
クライアント ファイアウォールを介して、WCF でプッシュ テクノロジを使用する必要があります。これは一般的な問題であるに違いなく、理論的には機能することを知っています (以下のリンクを参照)。
要件:
- WCF
- クライアントは、tcp ポート 80 (netTcpBinding) を介してサーバーに接続します。
- サーバーは不規則な間隔 (1 分から数時間) で情報をプッシュバックします。
- ユーザーがファイアウォールを構成する必要はありません。サーバーのプッシュは、すべての受信ポートが閉じられているファイアウォールを通過する必要があります。これには、同じ接続での TCP デュプレックスが必要です。クライアント ファイアウォールでポートを開く必要があるため、デュアル バインディングは機能しません。
- クライアントは定期的に (おそらく 15 分ごとに) ハートビートをサーバーに送信するため、サーバーはクライアントがまだ生きていることを認識します。
- サーバーは WAS を使用した IIS7 です。
解決策は二重 netTcpBinding のようです。この情報に基づいて:
しかし、動作するコード サンプルをまだ見つけていません。Microsoft の WCF サンプルから "Duplex" と "TcpActivation" のサンプルを組み合わせてみましたが、うまくいきませんでした。動作するサンプル コードを教えてください。または、小さなサンプル アプリを作成してください。どうもありがとう!