WCF自托管宿主相關(guān)概念詳解
也許很多人對WCF還不是很了解,不過沒關(guān)系,通過這篇文章介紹的內(nèi)容,大家應該會基本掌握了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()方法,可以便于開發(fā)者在控制臺應用程序,Windows應用程序乃至于ASP.NET應用程序中托管服務。不管WCF自托管宿主的環(huán)境是何種應用程序,實質(zhì)上托管服務的方式都是一致的。例如在控制臺應用程序中:
- using (ServiceHost host =
new ServiceHost(typeof
(DocumentsExplorerService)))- {
- host.Open();
- Console.WriteLine("The
Service had been launched.");- Console.Read();
- }
由于ServiceHost實例是被創(chuàng)建在應用程序域中,因此我們必須保證WCF自托管宿主進程在調(diào)用服務期間不會被關(guān)閉,因此我們利用Console.Read()來阻塞進程,以使得控制臺應用程序能夠一直運行,直到認為地關(guān)閉應用程序。如果是Windows應用程序,則可以將創(chuàng)建ServiceHost實例的代碼放在主窗體的相關(guān)代碼中,保證服務宿主不會被關(guān)閉。