2

IIS 上の同じサイトを持つ複数の仮想ディレクトリに同じ WCF サービスを展開する必要があります。これらすべてのインスタンスに同じ名前空間を使用している場合、問題は発生しますか?

4

2 に答える 2

2

技術的には、サービスはそのホスティング、つまり .svc ファイル (または構成内のサービス エントリ) に対して責任を負いません。各インスタンスは異なるエンドポイントにあるため、問題が発生する理由はありません。人々は同じ仮想ディレクトリ内でもこれを行い、各エンドポイントで異なるバインディングを使用して同じサービスを複数回ホストします。たとえば、私のセキュリティ サービスには、ユーザー名/パスワード、Windows 認証、または既存のトークンで認証するかどうかに応じて、エンドポイントで異なるセキュリティでホストされている同じサービスがあります。

于 2012-09-13T15:08:09.850 に答える
1

BizTalkでは、名前空間の重複は問題になりますが、IIS 仮想ディレクトリを境界として使用すると問題は発生しません。

MVC サービス ルーティングを介して複数のエンドポイントを使用してサービスを登録し、仮想ディレクトリの作成を完全に回避できます。

ServiceHostFactory serviceHost = new ServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory1/SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory2/SoapService", serviceHost, typeof(SoapService)));

物理 SVC ファイルで従来のサービス アクティベーションを使用している場合は、各仮想ディレクトリを、SVC ファイルが存在する物理的な場所と同じ場所に指定できるはずです。

于 2012-09-13T14:31:22.720 に答える