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