web-dev-qa-db-ja.com

WCFの「エンドポイント」とは何ですか?

エンドポイントは可能なクライアントのリストとして設定ファイルで定義されているように見えましたが、それは意味がありません(私はそれがどのコンピューターがサービスに接続できると言ったという意味で)今はもっと定義のだから、誰かが私にエンドポイントが何であるかを説明してください?コントラクトインターフェースを定義してからコントラクトを実装するという概念は理解していますが、そこと実際に使用可能なものの間のどこかに迷ってしまいます。

この文脈でのアドレスとは何ですか?ホストアドレス?

バインディングは、使用する通信方法/プロトコルが正しいですか?

契約は本質的に「共有されているオブジェクト」です(はい、それは技術的に非常に間違っていますが、ここで私と協力してください)

50
Firoso

エンドポイントはサービスが公開するものであり、WCFの用語では、3つの要素で構成されます。

  • 住所
  • バインディング
  • 契約する

アドレスは、エンドポイントに到達できるURLです。

バインディングは、適用される変換と、アドレスで契約の実装に送信されるメッセージの形状(ある程度)を決定します。

契約は、住所で公開されている操作を決定します。それはまさにそれが言っていることです、それはどんな呼び出しが許されるかを示すための契約です。

ほとんどの場合、人々はそれをA B Cとして覚えています。

注意するべき事柄:

通常、バインディングは、ビヘイビアが適用されたチャネルの組み合わせになります。チャネルは、メッセージを変更し、サービス実装に到達する前にアクションを実行するチャネルスタック上の要素です。

一般に.NETのインターフェイスで表されますが、契約をこの方法で表すことは必須ではありません。設計優先の支持者の中には、WCFが.NET Contractインターフェイスを変換する、最初に要求と応答のために送信されるメッセージにスキーマを定義するものがあります。

70
casperOne

Juval Lowy's Programming WCF Services here:を引用します

すべてのサービスは、サービスの場所を定義するアドレス、サービスとの通信方法を定義するバインディング、およびサービスの動作を定義するコントラクトに関連付けられています。サービスを管理するこの三位一体は、サービスのABCとして覚えやすい。

WCFは、この関係をエンドポイントの形式で形式化します。エンドポイントは、アドレス、契約、およびバインディングの融合です。

すべてのエンドポイントには3つの要素すべてが必要で、ホストはエンドポイントを公開します。

17
draconis

WCFのエンドポイント
WCFサービスは、エンドポイントのコレクションを公開するプログラムです。各エンドポイントは、世界と通信するためのポータルです。エンドポイントは3つのコンポーネントで構成されます。
1)アドレス
サービスの場所を定義します
ex- http://www.test.com:8001/MyService
2)Bindings
クライアントがエンドポイントと通信する方法を指定するバインディング。
ex-BasicHttpBinding、WSHttpBinding、WSDualHttpBindingなど
3)契約
利用可能な操作を識別する契約

エンドポイントは、作成されたサービスのweb.configファイルで言及されます。

13
DOTNET Team

サービスエンドポイントには、アドレス、バインド、および契約があります。エンドポイントのアドレスは、エンドポイントが存在するネットワークアドレスです。 EndpointAddressクラスは、WCFエンドポイントアドレスを表します。エンドポイントのバインディングは、トランスポートプロトコル(TCP、HTTPなど)、エンコード(テキスト、バイナリなど)、セキュリティ要件(SSL、SOAP =メッセージセキュリティ)。BindingクラスはWCFバインディングを表します。エンドポイントのコントラクトは、エンドポイントが通信するものを指定し、基本的に、一方向、二重、要求などの基本的なメッセージ交換パターン(MEP)を持つ操作で編成されたメッセージのコレクションです/ reply:ContractDescriptionクラスは、WCFコントラクトを表します。

5
user2336872

here: を参照してください。サービスエンドポイントは、通信に使用するアドレス、バインディング、およびコントラクトを指定します。

3
Otávio Décio

サービスエンドポイントには、アドレス、バインド、および契約があります。エンドポイントのアドレスは、エンドポイントが存在するネットワークアドレスです。 EndpointAddressクラスは、WCFエンドポイントアドレスを表します。エンドポイントのバインディングは、トランスポートプロトコル(TCP、HTTPなど)、エンコード(テキスト、バイナリなど)、セキュリティ要件(SSL、SOAP =メッセージセキュリティ)。BindingクラスはWCFバインディングを表します。エンドポイントのコントラクトは、エンドポイントが通信するものを指定し、基本的に、一方向、二重、要求などの基本的なメッセージ交換パターン(MEP)を持つ操作で編成されたメッセージのコレクションです/ reply:ContractDescriptionクラスは、WCFコントラクトを表します。

1
sdd

Webサービスエンドポイントは、これらの一部またはすべてを隠すことができます。また、リクエストに基づいて、リクエストの処理を内部的に決定できます。

SRJTesterツール(Githubで利用可能)は、サービスリクエストを行う際にエンドポイント、アクション、プロトコルなどを指定するのに便利です。

0
SRJTester