背景は私が変更することはできません既存のサービス契約を結んでいるマルチテナント
をサポートするために、URLからリクエストヘッダを追加します。サービスの実装は、私がサポートし、変更できるコードです。
現在、サービスは、単一のテナントをサポートしており、このサービスの複数のインスタンスは、例えばhttp://foo-tenant1.com/service.svcとhttp://foo-tenant2.com/service.svc
のために、ホストされている今、私は単一のサービスで、複数のテナントをサポートするサービスを変更したいです。たとえば、住所:http://foo.com/service.svcでホストされているサービスで、アドレスにテナントIDを追加して複数のテナントをサポートしています。例えば
:
WCFは、何らかの形で、ワイルドカードルーティングをサポートすることができた場合:
http://foo.com/service.svc?tenant1とhttp://foo.com/service.svc?tenant2:それは何らかの形でクエリ文字列をサポートできる場合
http://foo.com/tenant1/service.svcとhttp://foo.com/tenant2/service.svc等...
をか
または他の方法...
これを呼び出すクライアントは、テナントの概念を持たないためです。クライアントの視点から見ると、テナントごとにURLが1つしかありません。
質問
どのように私はこのようなエンドポイント「すべてをキャッチ」でWCFサービスをホストすることができますか?またはルーティングやURLの書き換えでこれを行うことはできますか?テナントIDをリクエストヘッダに入れ、マルチテナントをサポートするようにサービスコードを変更することができます。
次に、リクエストヘッダから読み込み、テナントIDをサポートするようにサービスコードを変更することができます。
サービス契約を変更できないと言うと、コードにアクセスできないということですか? –
さらに、http://foo.com/tenant/service.svcとhttp://foo.com/tenant1/service.svcは、1つのサービスでは達成できない2つの異なるWCFサービスを意味します。あなたはWCF RESTサービスを参照したいと思っています。http://foo.com/Service.svc/tenantとhttp://foo.com/Service.svc/tenant1 –
@HarmeetBhamra私はクライアントを変更することができないので、サービスコードを変更できますが、契約は変更できません – EdmundYeung99