WCF自托管宿主相關概念詳解
也許很多人對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實例的代碼放在主窗體的相關代碼中,保證服務宿主不會被關閉。