為你展示兩種WCF服務(wù)通信方式
學(xué)習(xí)WCF時(shí),你可能會(huì)遇到WCF不允許客戶端直接與服務(wù)交互,即使它調(diào)用的是本地機(jī)器內(nèi)存中的服務(wù)問題,這里將介紹WCF服務(wù)通信問題的解決方法,客戶端總是使用代理(Proxy)將調(diào)用轉(zhuǎn)發(fā)給服務(wù)。代理公開的操作與服務(wù)相同,同時(shí)還增加了一些管理代理的方法。在這里拿出來和大家分享一下。
#T#服務(wù)的創(chuàng)建對(duì)于外界而言是不透明的,所以WCF服務(wù)通常通過公開元數(shù)據(jù)(Metadata)的方式描述可用的功能以及服務(wù)可能采用的通信方式。元數(shù)據(jù)的發(fā)布可以預(yù)先定義,它與具體的技術(shù)無關(guān)(Technology-Neutral),例如采用基于HTTP-GET方式的WSDL,或者符合元數(shù)據(jù)交換的行業(yè)標(biāo)準(zhǔn)。一個(gè)非WCF客戶端可以將元數(shù)據(jù)作為本地類型導(dǎo)入到本地環(huán)境中。相似的,WCF客戶端也可以導(dǎo)入非WCF服務(wù)的元數(shù)據(jù),然后以本地CLR類與接口的方式進(jìn)行調(diào)用。
WCF允許客戶端跨越執(zhí)行邊界與WCF服務(wù)通信。在同一臺(tái)機(jī)器中,客戶端可以調(diào)用同一個(gè)應(yīng)用程序域中的服務(wù),也可以在同一進(jìn)程中跨應(yīng)用程序域調(diào)用,甚至跨進(jìn)程調(diào)用。

圖:使用機(jī)器實(shí)現(xiàn)WCF服務(wù)通信
圖則展示了跨機(jī)器邊界的通信方式,客戶端可以跨越Intranet或Internet的邊界與服務(wù)交互。






















