文章出處

我們需要知道很多東西才能使用微軟通信基礎架構(WCF)來開發應用程序。盡管這本書已經試著囊括普通開發人員需要了解的WCF所有內容,也還是有一些內容沒有討論到。附錄的主要目的是填充這些罅隙。

發布元數據終結點

我們已。經在第一章”基礎”中討論過元數據。這次討論對使用元數據暴露服務的配置信息做了一個簡要介紹。然而,它并沒有詳細說明元數據到底是如何被暴露的。稍后我們介紹第四章“綁定”的概念,但是僅限于討論那些用來暴露服務的綁定;我們不關注元數據綁定。WCF提供四種額外綁定: mexHttpBinding, mexHttpsBinding, mexTcpBinding和mexNamedPipeBinding綁定。這些綁定在不同傳輸協議上使用元數據暴露服務配置信息。

小提示 以”mex”開始的綁定暴露服務元數據 
Windows 通信基礎架構對那些所有用來暴露元數據的綁定加上”mex”前綴。

mexHttpBinding

mexHttpBinding綁定的存在是為了使用它在HTTP傳輸協議上暴露元數據。如果在basicHttpBinding, wsHttpBinding, ws2007HttpBinding綁定上或者任何包含了HttpTransportBindingElement綁定元素的自定義綁定上暴露服務的話那么使用它是合適的。對大多數情況來說mexHttpBinding綁定就是你的選擇因為它提供了對你的元數據的最廣泛地訪問。這意味著元數據可以通過客戶端工具如svcutil.exe 和Visual Studio 2005通過添加服務引用來直接訪問。它也意味著元數據可以使用其他HTTP客戶端訪問,這包括IE, 火狐以及Opera 等瀏覽器。取決于你的安全配置,這可能不是必須的(基礎Http協議是不支持安全的,你可以使用HTTPS或者證書等進行加密)。例如,如果你想使用netNamePipeBinding綁定在本機內進行通信,你可能不想使用這個綁定(這是為神馬呢? 因為有mexNamedPipeBinding可以選擇呀)。

mexNamedPipeBinding

mexNamedPipeBinding綁定的存在是為了使用它在命名管道傳輸協議上暴露元數據。這個綁定為那些使用netNamedPipeBinding綁定或者任何包含NamedPipeBinding綁定的綁定元素的自定義綁定暴露服務元數據。mexNamedPipeBinding綁定不將元數據暴露到互聯網上而且保證元數據僅可以從本機訪問。WCF特別地限制命名管道只能用于本機通信。這已經在第四章的”兩個.NET 應用程序之間的本機通信”部分討論過了。

mexTcpBinding

mexTcpBinding綁定的存在是為了使用它在TCP傳輸協議上暴露元數據。這個綁定為那些使用netTcpBinding或者netPeerTcpBinding綁定或者任何基于TcpTransportBinding綁定元素的自定義綁定暴露。當使用mexTcpBinding綁定的端口共享時需要考慮一個問題。mexTcpBinding綁定使用的底層TcpTransportBindingElement綁定元素禁用了端口共享。如果需要端口共享,基于mexTcpBinding綁定的自定義綁定可以在傳輸協議上將PortSharingEnabled屬性設置為true. 想要了解更多內容,查看附錄中”在服務間共享端口”部分。

mexHttpsBinding

mexHttpsBinding綁定的存在是為了使用它在使用SSL/TLS傳輸加密(HTTPS)的HTTP傳輸協議上暴露元數據。與mexHttpBinding綁定類似,mexHttpsBinding用來與basicHttpBinding, wsHttpBinding, ws2007HttpBinding綁定或者任何基于HttpTransportBindingElement綁定元素的自定義綁定一起使用。使用mexHttpsBinding綁定允許傳輸層加密,這會防止元數據被暴露到互聯網上。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()