は、私は、クライアントのファイアウォールを介しWCFでプッシュ技術を使用する必要がHow does a WCF server inform a WCF client about changes? (Better solution then simple polling, e.g. Coment or long polling)WCFはファイアウォールを介してクライアントにプッシュしますか?
も参照してください。これは一般的な問題でなければならず、実際には理論的にはうまくいきます(下記のリンクを参照)。しかし、私はそれを動作させることができず、それを示すコードサンプルを見つけることができませんでした。
要件:
- WCF
- クライアントのTCPポート80(netTcpBinding)を介してサーバーに接続します。
- サーバーは情報を不定期に(1分〜数時間)プッシュバックします。
- ユーザーはファイアウォールを構成する必要はありません。サーバープッシュは、すべての受信ポートを閉じたファイアウォールを通過する必要があります。このためには、同じ接続上のTCP二重化が必要です。クライアントファイアウォール上でポートを開く必要があるため、デュアルバインディングは機能しません。
- クライアントは一定の間隔(おそらく15分ごと)でハートビートをサーバーに送信し、サーバーはクライアントがまだ生きていることを認識します。
- サーバーはIIS7 with WASです。
解決策は、デュプレックスnetTcpBindingのようです。この情報に基づいて:
WCF through firewalls and NATs
Keeping connections open in IIS
しかし、私は作品のサンプルコードを見つけるためには至っていない..私は、MicrosoftのWCFサンプルから「両面」と「TcpActivation」のサンプルを組み合わせて試してみました運がない。誰かが、動作するサンプルコードを教えてもらえますか、小さなサンプルアプリケーションを作成してください。どうもありがとう!
あなたは、例外のいずれかの種類に遭遇していますか?それは正確に何が働いていないのですか? – jrista