日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

WinVista新技術(shù) WCF開發(fā)指南之構(gòu)建服務(wù)( 四 )


public static void Main()
{
Uri baseAddress = new Uri("http://localhost:8000/");
ServiceHost serviceHost;
serviceHost = new ServiceHost(typeof(MyService),baseAddress);
serviceHost.Open();
//能夠攔截調(diào)用:
Application.Run(new MyForm());
serviceHost.Close();
}
注意,你可以在調(diào)用ServiceHost.Open()之后攔截調(diào)用,因?yàn)樵撍拗鹘邮赵诠ぷ髡呔€程上的所有調(diào)用 。對ServiceHost.Open()的調(diào)用將加載WCF運(yùn)行時刻并且支持接收客戶端調(diào)用 。該宿主能注冊多個基地址,只要它們至少在傳輸方面存在不同:

Uri tcpBaseAddress = new Uri("net.tcp://localhost:8001/");
Uri httpBaseAddress = new Uri("http://localhost:8002/");
ServiceHost serviceHost = new ServiceHost(typeof(MyService),tcpBaseAddress,httpBaseAddress);
通過從"Add New Item"對話框中選擇WCF服務(wù),Visual Studio 2005允許你把一個WCF服務(wù)添加到任何應(yīng)用程序工程 。以此方式添加的服務(wù)當(dāng)然是進(jìn)程中服務(wù)(相對于宿主進(jìn)程來說),但是也可以由外部客戶端存取 。
八. WAS宿主

Windows活動服務(wù)(WAS)是可用于Windows Vista中的一種系統(tǒng)服務(wù) 。WAS是IIS7的一部分,但是可以被獨(dú)立地配置 。為了使用WAS來宿主通訊WCF服務(wù),你需要提供一個.svc文件 。該WAS提供與IIS和自宿主相比更多的優(yōu)點(diǎn),包括空閑時間管理、標(biāo)識管理、應(yīng)用程序池、隔離等等,并且是選擇的宿主進(jìn)程(在可用的情況下) 。而且,這種自宿主的進(jìn)程為進(jìn)程內(nèi)宿主提供獨(dú)特的優(yōu)點(diǎn):處理未知的客戶環(huán)境、依賴于TCP或IPC(當(dāng)只有IIS可用時)、利用HTTP上的多個端口(當(dāng)只有IIS 6可用時)以及通過編程方式存取一些高級宿主特征 。

九. 綁定

與任何給定的服務(wù)進(jìn)行通訊都存在多方面的問題 。首先,存在許多可能的通訊模式:消息可能是同步請求/響應(yīng)或異步式的"激活-忘記"模式(fire-and-forget);消息也可能是雙向的;消息能夠被立即傳輸或隊(duì)列化操作而該隊(duì)列可能是持久性的或易破壞性的 。

還存在許多可能的消息傳輸協(xié)議:例如HTTP(或HTTPS),TCP,P2P(端對端網(wǎng)絡(luò)),IPC(命名管道)或MSMQ 。也存在一些可能的消息編碼選項(xiàng):你可以選擇普通文本以支持互操作性,二進(jìn)制編碼以便于優(yōu)化性能,或MTOM(消息傳輸優(yōu)化機(jī)制)以便處理巨大載荷 。

也存在一些消息保護(hù)選項(xiàng):你可以選擇不對之進(jìn)行保護(hù),你也可以使用它們來僅提供傳輸級安全或提供消息級隱私和安全,并且當(dāng)然,也存在很多種方式用于對客戶端實(shí)現(xiàn)認(rèn)證和授權(quán) 。消息傳輸在跨越中間媒體和中斷連接時可能是不可靠的或可靠的端到端式,并且消息可能是以其發(fā)送的方式傳輸?shù)幕蚴且云浣邮辗绞絺鬏數(shù)?。

通訊服務(wù)可能需要與其它服務(wù)或僅能夠使用基本W(wǎng)eb服務(wù)協(xié)議的客戶端互操作,或者它們能夠使用WS-*現(xiàn)代協(xié)議的核心(例如WS-安全和WS-原子事務(wù)) 。通訊服務(wù)可能需要與舊式的客戶端通過原始的MSMQ消息進(jìn)行互操作,或你可能想限制通訊服務(wù)以便僅與另一個WCF服務(wù)或客戶端互操作 。

簡言之,通訊存在許多方面的內(nèi)容,包括大量的參數(shù)和決策點(diǎn) 。其中,一些選擇可能是互斥的,而另一些選擇可能要求必須使用另外的相應(yīng)選擇 。很明顯,客戶端和服務(wù)必須在所有這些選項(xiàng)上相吻合,以達(dá)到正確交流的目的 。為了簡化并使其更具可管理性,WCF小組共同在綁定中提供了一個這樣的通訊方面集合 。

個綁定僅僅是對于相協(xié)調(diào)的傳輸協(xié)議、消息編碼、通訊模式、可靠性、安全性、事務(wù)傳播和互操作性的預(yù)封裝 。理想情況下,你能夠從通訊服務(wù)代碼中"提取"所有的這些繁重的任務(wù)方面并且允許它專注于實(shí)現(xiàn)業(yè)務(wù)邏輯 。這樣做可以使你在相當(dāng)不同的繁重任務(wù)方面使用相同的服務(wù)邏輯,而綁定正好使你能夠?qū)崿F(xiàn)這一目的 。

推薦閱讀