136

WCFのWeb参照とサービス参照の違いは何ですか?WCFではどちらが望ましいですか?

4

5 に答える 5

102

ここでの低レベルの答えは、Web 参照がクライアント プロキシ クラスを作成し、コードが WSDL を介して記述され、SOAP または HTTP GET を介して通信する Web サービスと通信できるようにすることです (他のポスターは、それが ASMX のみであることを示していますが、 Web 参照は、Java ベースの Web サービス、Python ベース、または Ruby とも対話できますが、それらがすべて WSDL と対話し、WS-I 相互運用性標準に準拠している場合に限ります)。

サービス参照は、WCF ベースのサービスと通信するクライアント プロキシ クラスを作成します。その WCF サービスが Web サービスであるかどうかは関係ありません。

于 2009-04-14T15:27:53.567 に答える
68

Webリファレンスを使用すると、WS-I Basic Profile 1.1を実装するテクノロジーに基づくサービスと通信し、関連するメタデータをWSDLとして公開できます。内部的には、クライアント側でASMX通信スタックを使用します。

サービスリファレンスを使用すると、WCFでサポートされている多くのプロトコル(WS-I基本プロファイルを含むがこれに限定されない)のいずれかを実装するテクノロジに基づいて、任意のサービスと通信できます。内部的には、クライアント側でWCF通信スタックを使用します。

これらの定義はどちらも非常に広く、.NETで記述されていないサービスが含まれていることに注意してください。

basicHttpBindingWCFエンドポイントが使用するか、互換性のあるカスタムバリアントである限り、WCFサービスを指すWeb参照を追加することは完全に可能です(推奨されませんが) 。

ASMXサービスを指すサービス参照を追加することもできます。新しいコードを作成するときは、柔軟性が高く将来性があるという理由だけで 、常にサービスリファレンスを使用する必要があります。

于 2010-06-04T11:54:08.353 に答える
17

サービス参照は、あらゆる種類の WCF サービス (Web サービスではない場合があります) への参照を追加するための新しいインターフェイスですが、Web 参照は特に ASMX Web 参照に関連しています。

サービス参照の追加の詳細オプションを介して Web 参照にアクセスできます (私の記憶が正しければ)。

私が理解しているように、それは2つの新しいメカニズムであるため、サービス参照を使用します。

于 2008-11-21T12:15:12.083 に答える
7

サービス参照は、完全に構成可能なエンドポイントとバインディングを扱います。任意のトランスポート プロトコル (HTTP、TCP、共有メモリなど) を介してクライアント プロキシを WCF にポイントできます。

これらは、WCF で動作するように設計されています。

WebProxy を使用している場合は、WCF over HTTP を使用する必要があります。

于 2008-11-21T12:34:07.770 に答える
5

考慮すべきもう 1 つのポイントは、Service Interface の新しい UI により、プロキシ クラスの作成方法がより柔軟になることです。たとえば、データ コントラクトが一致する場合は、データ コントラクトを既存の dll にマップできます (実際には、これが既定の動作です)。

于 2008-11-23T00:54:54.810 に答える