61

私は WCF を初めて使用し、次の各バインディングの違い/利点/制限などを知りたいです。

net.pipe
net.tcp
http

各バインディングと他の例をいつ使用するかについてのシナリオをサポートしていただければ幸いです。

4

3 に答える 3

68

特定の使用例を提供するのには適していませんが、バインドのすべての機能を一覧表示する MSDN のリンクを次に示します。

http://msdn.microsoft.com/en-us/library/ms730879.aspx

以下は、それらの選択にも役立つ適切なフローチャートです。

フローチャート

ソース: http://bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx

これは、私が過去に使用した全体的な良い記事です。

http://mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx (リンクが機能しなくなった場合は、ウェイバック マシンで)

于 2009-04-19T17:14:21.160 に答える
52

net.pipe は、ネットワークから Web サービスにアクセスできないため、高速で安全です (通常、net.pipe を使用して Windows サービスと簡単にやり取りします)。

http、相互運用性の理由で使用します。Web サービスが HTTP 経由でない場合、Silverlight またはフラッシュは使用できません (ファイアウォールのように、ブラウザが非 http パケットをフィルタリングするため)。

net.tcp は、SOAP メッセージが HTTP リクエスト内にラップされていないため、少し高速ですが、RIA テクノロジを使用して Web サービスを呼び出すことはできず、一部のファイアウォールはメッセージをドロップします。

于 2009-04-19T17:14:14.107 に答える
14

Windows Communication Foundation (WCF) は、XML メッセージを処理するサービスを構築するためのフレームワークです。WCF では、さまざまなトランスポート プロトコル (HTTP、TCP、MSMQ など) とさまざまな XML 表現 (テキスト、バイナリ、MTOM など、一般に WCF ではメッセージ エンコーディングと呼ばれます) を使用してメッセージを送信できます。

1 台のマシンで多数の WCF サービスをホストし、それらの通信に共有メモリを使用する場合は、名前付きパイプを使用します=>net.pipe を使用してから、別のマシンの WCF サービスへの通信に tcp を使用します。

nettcp バインドの構成は、Windows 環境でより優れたパフォーマンスを発揮するチャネル スタックの作成に重点を置いており、さまざまな COM+ および .NET リモート処理への投資を置き換えるための優れたオプションを提供します。

BasicHttpBinding は、相互運用性が最も重要なシナリオ向けに設計されています。その結果、BasicHttpBinding は、トランスポートに HTTP を使用し、メッセージ エンコーディングにテキストを使用します。

于 2009-04-19T17:00:40.350 に答える