WCF程序必须在宿主上运行,也就是WCF服务必须寄宿在某一个windows的进程中,可以是IIS、控制台程序、窗体程序、WAS以及所有.net程序等程序进程中。在我用VS2013创建WCF服务的时候有四个类型:WCF服务库、WCF服务应用程序、WCF工作流服务应用程序和联合服务库。现在处于初学阶段,主要学习用到的是WCF服务库和WCF服务应用程序,它们有什么区别呢?
1.WCF服务库:相当于一个包含WCF服务的类库,本身不能执行,必须通过别的宿主程序(如控制台程序、WAS等)托管引用后才可以使用,可以提高代码的复用性。
2.WCF服务应用程序:相比之下可以独立运行,基于IIS托管的程序。在开发基于IIS的WCF服务时比较多见,自学的时候也多用这个,在WCF入门一[WCF概述]中就使用过。
IIS的宿主实现在之前讲过,所以不再复述。这里我们先创建一个WCF服务库WcfServiceLibrary,将默认的文件IService1.cs和Service.cs删除,新建一个WCF服务Day.cs会生成Day,cs和IDay.cs两个文件,接口和实现如下:
namespace WcfServiceLibrary { [ServiceContract] public interface IDay { [OperationContract] string ShowDay(int day); } } namespace WcfServiceLibrary { public class Day : IDay { public string ShowDay(int day) { return string.Format("WCF服务返回Day是:{0}", day); } } }