二重コールバック用のWSDualHttpBindingを使用するのが現実のシナリオで機能しますか?言う、ランダムなポートを使用する.NETアプリケーションがあります、サービスは、クライアントのベースアドレスとコールバックのポートを解決することができますか?二重コールバック用のWSDualHttpBinding
答えて
質問に対する完全な回答は、イントラネットまたはインターネットシナリオの「現実のシナリオ」に依存します。 WSDualHttpBindingは、両方のシナリオで動作しますが、注意すべき仕様があります。
WSDualHttpBindingは、.NETアプリケーションは、イントラネットのシナリオで事前に設定カスタムポートを使用して動作します
イントラネットが「はい」のサービスになりますクライアントのベースアドレスとコールバックのためのポートを解決することができます。以下に説明する理由は、WSDualHttpBindingが主にインターネット上で使用されるように設計されているためです。
クライアントとサーバーの両方でWCFを使用できるイントラネットシナリオでのデュプレックスコールバックは、NetTcpBindingまたはNetNamedPipeBindingを使用すると最も効果的です。これらのバインディングでは、TCPとICPをそれぞれトランスポート(HTTPではなく)とカスタムバイナリエンコーディングとして使用するため、WCFが両サイドで必要になります。クライアントへのコールバックでは、Binding経由でサービスに接続するために使用された同じチャネルが、新しいポートを開かなくても再利用されます。インターネットシナリオの有効なHTTPリクエストとレスポンスで
インターネット
一方向のみに移動する、HTTPは、一方向のプロトコルとして設計されています。したがって、WSDualHttpBinding WCFを使用すると、コールバック用に別個のHTTPチャネルが作成されます。あなたの2番目の質問に答えて:クライアントへのこのコールバックの宛先アドレスは、デフォルトでクライアントマシンのホスト名とポート80で構成されています。たとえば、クライアントが開発マシンで、IISがインストールされている場合、プロトタイプアプリケーションと競合するポート80が一部のシナリオで排他的に予約されます。これは、this blog postが解決策を提示し、ClientBaseAddressプロパティが役立つように設計されているものです。どちらのポート(デフォルトまたはカスタムポート)にかかわらず、発信側チャネルと別個のコールバックチャネルの両方を確立できるように、両方のファイアウォールとルータがすべて正しく設定されていることを確認する必要があります。
.NETアプリケーションは、Silverlightアプリケーションを表すこともできます。ブラウザーで実行されているSilverlightアプリケーションは新しい着信HTTP接続を受け入れることができないため、別のバックチャネルを使用するWSDualHttpBindingは機能しません。したがって、PollingDuplexHttpBindingは、Silverlight 2で最初に作成されました。これは、リクエストチャネルを長時間開いたままにして(長いポーリング)、それをバックチャネルとして使用することで、HTTPが単方向であるという事実を回避する巧妙な「トリック」と考えることができますクライアントにコールバックします。これはスケーリングに特に関係するクライアント側とサーバ側の両方に多くの意味を持ちます。詳細はthis post from my blogを参照してください。
あなたの特定の「現実のシナリオ」とあなたのユースケースを考えれば、これはデュプレックスコールバックに使用する正しいバインディングを練るのに役立ちます。
ファイアウォールの背後にあるアプリケーションの場合は、理論的にはyesです。それはあなたが「現実の世界」の意味に依存します。あなたが "高性能"を意味するならば、たぶんNetTcpBindingはより良いアプラックです。
- 1. WCF wsDualHttpBindingコールバックの送信を停止する
- 2. 二重引用符
- 3. gnuパラレルでの二重引用符の二重対の衝突
- 4. 二重引用符で囲んだ二重引用符
- 5. PHPの二重引用符
- 6. 「単一二重引用符で "」二重の二重引用符を置き換え
- 7. エスケープ「二重引用符は」
- 8. awkと二重引用符
- 9. Regex.Matches c#二重引用符
- 10. PHP二重引用符
- 11. XSLT 1.0:二重引用符
- 12. mysqlimportと二重引用符
- 13. 印刷二重引用符
- 14. デュプレックスWCFサービスチャネル(WSDualHttpBinding)
- 15. 二重のバックスラッシュ(\\)
- 16. Bashの一重引用符と二重引用符の違い
- 17. UTF-8文字列の二重二重引用符を一重引用符に置き換えます。
- 18. javascriptの一重引用符または二重引用符
- 19. Node.jsの一重引用符または二重引用符?
- 20. 二重リンクリストの実際の使用
- 21. 二重のリンクリストC++
- 22. テーブルの二重枠
- 23. アプリケーションリストの二重アイコン
- 24. 二重リンクリストのスマートポインタ
- 25. ロックフリーの二重リンクスキップリスト
- 26. lstlistingの二重ハイフン
- 27. ggplot2の二重ボックスプロット
- 28. 二重リンクリストのガベージコレクション
- 29. 二重円リンクリスト
- 30. は、二重[]
非常に有益な+1 –