WCF- 1つのサービスライブラリにREST(WebHTTPBinding)を含む複数のバインディングを使用していますか?
-
13-09-2019 - |
質問
外部消費と内部消費のために、サービスレイヤー(現在POCOSの標準クラスライブラリとして書かれています)を公開したいと思います。外部クライアントはレストスタイルのAPIを介してそれを使用しますが、内部的に私のMVCアプリは、より良いパフォーマンスを得るためにnet.tcpバインディングを介してそれを使用します。
これをエレガントにするにはどうすればよいですか? VS2010 Beta 2 REST機能と標準のWCFバインディングを使用して、2つのラッパーを休憩用に書くことができます。
これを1つのラッパーで行うことはできますか?または、既存のサービスをWCFとしてリファクタリングするだけで、WebHTTPBinding、WSHTTPBindingなどのさまざまなバインディングを使用してさまざまなエンドポイントで公開します。
よろしく、
アジャイ
解決
サービスライブラリには、サービスの実装のみが含まれます - サービス(およびデータ)契約は独自の「契約」アセンブリにある必要があります。
ホスティングの問題と使用するプロトコルは、サービスによって処理されます ホスト - これは、IIS、別のNTサービス、コンソールアプリなどです。あれは 完全に サービスクラスとサービスライブラリに独立しています。
はい - サービスライブラリを簡単に作成してから、サービスホストの多数のエンドポイントにそのサービスを公開できます。これらの2つのことは、互いに完全に分離する必要があります。
他のヒント
確かに、それらを構成ファイルに追加するか、コードを使用するだけです。
VS 2010 Beta 2のREST機能はそれ自体がWCFの上に構築されているため、それらを使用する場合は、とにかくサービスをWCFサービスにリファクタリングする必要があります。その時点で、DaniとMarc_sが言うように、構成ファイルを介してサービスにエンドポイントを簡単に簡単に追加できます。