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