2

作成した WCF サービスを別のプロジェクトに統合する必要があります。サービスを単独で立ち上げるのではなく、2 番目のプロジェクトでサービスをホストしたいと考えています (これは Sitecore の実装であり、メンテナンスの観点から作業を容易にします)。プロジェクトはさまざまなソリューションにあります。コードが別のプロジェクトにある場合でも、2 番目のプロジェクトがサービスを提供することは可能ですか? DLL を参照する必要があることはわかっていますが、それ以上にサービスをセットアップする方法がわかりません。サービスの何らかの部分的な実装が必要だと思いますが、それは私の知識の範囲です。

別のしわ - 2 番目のプロジェクトが C# であるのに対し、サービスは VB で書かれています。DLL を介してすべてのサービス コードを参照しているので問題にはなりませんが、言及しておくことにしました。

UPDATE 言い忘れたことの 1 つは、このサービスを Web サービスとして他のアプリケーションでも利用できるようにしたいということです。そのため、サービスは 2 番目のアプリ内で立ち上がり、3 番目のアプリがサービスを呼び出すことができるようになります。これがこれまでの回答に影響を与えているかどうかはわかりません。

4

3 に答える 3

3

WCF サービスが DLL としてコンパイルされている場合は、参照を追加して次のように単純にする必要があります。

 static void Main(string[] args)
 {
     ServiceHost host = new ServiceHost(typeof(MyService));
     host.Open();

     Console.ReadLine();
     host.Close();
 }
于 2012-04-16T14:25:34.577 に答える
1

サービスは、ServiceHost を実行するマネージド プロセスによって公開されます。

これは、Windows サービス、コンソール アプリ、または IIS のいずれかです。

IIS でサービスをホストしている場合は、.SVC ファイルが必要な場合です。

WCF でホストしていない場合は、サービスを公開する方法を WCF ランタイムに伝える app.config ファイルを作成する必要があります。これを行うには、<System.ServiceModel/>構成セクションを使用します。

サービスがホストされると、任意の数のクライアント アプリケーションで使用できます。

于 2012-04-16T14:58:59.533 に答える
0

ホスト プロジェクトでサービスを部分的に実装する必要はありません。技術的には、WCF サービスは別の .NET クラスであることに注意してください。公開されるのは、クラスの型または .svc ファイルを参照する ServiceHost コードだけです (IIS を介して公開する場合)。そして、VB/C# は何の違いもありません。

于 2012-04-16T14:24:22.350 に答える