2

我创建了一个 WCF 服务,现在需要将其集成到另一个项目中。我不想让服务独立运行,而是希望第二个项目来托管服务(这是一个 Sitecore 实现,从维护的角度来看,这会使事情变得更容易)。这些项目有不同的解决方案。即使代码在另一个项目中,第二个项目是否有可能提供服务?我知道我需要引用 DLL,但除此之外我不确定如何设置服务。我认为我需要某种服务的部分实现,但这是我的知识范围。

另一个问题 - 该服务是用 VB 编写的,而第二个项目是 C#。没关系,因为我通过 DLL 引用了所有服务代码,但我想我会提到它。

更新 我忘记提到的一件事是,我希望该服务也可以作为 Web 服务提供给其他应用程序。因此该服务将在第二个应用程序中建立起来,以便第三个应用程序可以调用该服务。我不知道这是否会影响迄今为止的任何回应。

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 中托管,则应创建一个 app.config 文件,该文件将告诉 WCF 运行时您希望如何公开您的服务。为此,请使用<System.ServiceModel/>配置部分。

一旦托管服务,它就可以被任意数量的客户端应用程序使用。

于 2012-04-16T14:58:59.533 回答
0

您不需要在宿主项目中部分实现该服务。请记住,从技术上讲,WCF 服务只是另一个 .NET 类。它的暴露只是引用类的类型或 .svc 文件的 ServiceHost 代码(如果通过 IIS 暴露)。并且 VB/C# 不会有任何区别。

于 2012-04-16T14:24:22.350 回答