我创建了一个WCF服务,现在需要将其集成到另一个项目中。我不想自己提供服务,而是希望第二个项目来托管服务(这是一个Sitecore实现,从维护的角度来看会更容易)。这些项目有不同的解决方案。即使代码在另一个项目中,第二个项目是否可以提供服务?我知道我需要引用DLL,但除此之外我不确定如何设置服务。我假设我需要某种部分的服务实现,但这是我的知识范围。
另一个问题 - 服务是用VB编写的,而第二个项目是C#。这应该没关系,因为我通过DLL引用了所有服务代码,但我想我会提到它。
更新 我忘记提到的一件事是,我希望该服务也可以作为Web服务提供给其他应用程序。因此,该服务将在第二个应用程序中站起来,以便第三个应用程序可以调用该服务。我不知道这是否会影响到目前为止的任何回复。
答案 0 :(得分:3)
如果您的WCF服务被编译为DLL,它应该像添加引用一样简单:
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();
Console.ReadLine();
host.Close();
}
答案 1 :(得分:1)
服务由运行ServiceHost的托管进程公开。
这可以是Windows服务,consle应用程序或IIS。
如果您在IIS中托管服务,则需要.SVC文件。
如果您不在WCF中托管,则应创建一个app.config文件,该文件将告诉WCF运行时您希望如何公开您的服务。为此,请使用<System.ServiceModel/>
配置部分。
托管服务后,任何数量的客户端应用程序都可以使用它。
答案 2 :(得分:0)
您无需在主机项目中部分实施该服务。请记住,WCF服务在技术上只是另一个.NET类。它的暴露只是引用类的类型或.svc文件的ServiceHost代码(如果通过IIS公开)。而VB / C#也没有任何区别。