也许很多人对WCF还不是很了解,不过没关系,通过这篇文章介绍的内容,大家应该会基本掌握了WCF的一些基础知识。WCF中总共包括四种典型的宿主。#t#
这些WCF宿主包括:、"Self-Hosting" in a Managed Application(WCF自托管宿主);Managed Windows Services(Windows Services宿主);Internet Information Services(IIS宿主);Windows Process Activation Service(WAS宿主)等。
在这里我们主要针对WCF自托管宿主来做一个详细的介绍。
利用WCF提供的ServiceHost<T>提供的Open()和Close()方法,可以便于开发者在控制台应用程序,Windows应用程序乃至于ASP.NET应用程序中托管服务。不管WCF自托管宿主的环境是何种应用程序,实质上托管服务的方式都是一致的。例如在控制台应用程序中:
- using (ServiceHost host =
new ServiceHost(typeof
(DocumentsExplorerService)))- {
- host.Open();
- Console.WriteLine("The
Service had been launched.");- Console.Read();
- }
由于ServiceHost实例是被创建在应用程序域中,因此我们必须保证WCF自托管宿主进程在调用服务期间不会被关闭,因此我们利用Console.Read()来阻塞进程,以使得控制台应用程序能够一直运行,直到认为地关闭应用程序。如果是Windows应用程序,则可以将创建ServiceHost实例的代码放在主窗体的相关代码中,保证服务宿主不会被关闭。