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