2

WCF サービスで単一のエンドポイントを使用する場合と複数のエンドポイントを使用する場合の違いは何ですか? 重ねて使いたい時ってありますか?

私の状況では、承認用とデータ用の 2 つのエンドポイントがあります。Auth エンドポイントからログインすると、Data エンドポイントにアクセスして、すべてのデータにアクセスできます。

データ エンドポイントを複数のエンドポイントに分割する理由はありますか? データ エンドポイント コントラクトは現在、複数の .cs クラスで構成されており、これらはすべて 1 つの大きな部分クラスの一部です。

4

2 に答える 2

8

サービスが潜在的なクライアントの多様なグループに直面している場合、複数のエンドポイントは非常に理にかなっています。

  • Windows 資格情報とのバインドを使用する 1 つのエンドポイントnet.tcpは、ファイアウォールの背後から来る社内のクライアントに使用できます。これは、会社の Active Directory に対して認証されます。このバインディングは高速でパフォーマンスが高く、AD 統合を使用してセキュリティを設定するのは比較的簡単です。

  • 2 番目のエンドポイントは、wsHttpBindingトランスポート レベルのセキュリティ ( https://) を使用して強制することができます。そのため、特定のクライアントが、保護されたリンクでサービスを呼び出している可能性があります。

  • 3 番目のエンドポイントは、basicHttpBinding下位互換性を最大限にするために unsecured を使用している可能性があります。たとえば、あらゆる種類のクライアント (Ruby、PHP、その他のスクリプト言語などの多くの非 .NET クライアントも) がこのエンドポイントに接続できます。おそらく、保護されていないエンドポイントはすべてのメソッドを呼び出すことが許可されていないか、他の制限がある可能性があります (たとえば、容量が許可されている場合にのみ、最後の優先度の呼び出しとして処理されます)。

  • webHttpBinding4 番目のエンドポイントは、電話などのさらに多くのデバイスがそれに接続できるように、安らかな方法で同じサービスを公開する可能性があります。

複数のエンドポイントを用意して公開すると、サービスに到達しやすくなり、シナリオごとに「可能な限り最良の」バインディングを利用できます。

于 2011-05-17T16:12:04.603 に答える
0

機能ごとに論理的にグループ化するため、または各エンドポイントのバインディングにさまざまなレベルのセキュリティを適用できるように、さまざまなエンドポイントを使用します。

于 2011-05-17T16:06:27.903 に答える