首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 從理論到實踐 (5):Binding 綁定深度解析與選型指南

     編輯:關於.NET

文章導讀

本文深入剖析 WCF Binding 核心組成、三大 Binding Element 分類、描述的六大層面資訊,並提供 11 種內建 Binding 特性對比表與選型決策圖,助您精準選擇最適合的繫結。適合 WCF 初學者與架構師。

核心知識點

  • Endpoint ABC 架構中 Binding 的定位
  • Binding 三要素:Name、Namespace、BindingElement
  • 三大 Binding Element:編碼、傳輸、協定
  • Binding 描述的六大層面:事務、可靠性、安全、編碼、傳輸
  • 11 種內建 Binding 完整特性對比
  • 選型決策流程圖

一、Endpoint ABC 與 Binding 定位

Endpoint ABC 結構

元素解決問題關鍵字
Address (A)服務在哪裡?Where
Binding (B)如何通訊?How
Contract (C)提供什麼功能?What

Binding 封裝通訊底層細節:傳輸協定 (TCP/HTTP)、安全模式 (SSL/Message)、訊息編碼 (Text/Binary/MTOM)。

二、Binding 內部組成

Binding 組成

  • Name + Namespace:中繼資料中的唯一識別(如同姓名)
  • BindingElement 集合:描述繫結特徵的核心(如同基因)

三、三大 Binding Element 分類

Binding Element 分類

類型必要性功能範例
Encoding Binding Element 每個 Binding 必須包含一個 訊息編碼方式 Text, Binary, MTOM, Custom
Transport Binding Element 每個 Binding 必須包含一個 網路傳輸協定 TCP, HTTP, HTTPS, Named Pipes, MSMQ
Protocol Binding Element 可選,零或多個 安全性、可靠會話、事務流、上下文流 SecurityBindingElement, ReliableSessionBindingElement, TransactionFlowBindingElement

堆疊順序:應用層 → 協定通道 → 編碼器 → 傳輸通道 → 網路

四、Binding 描述的六大層面資訊

Binding 描述層面

層面對應 BindingElement說明
Transactions (事務)TransactionFlowBindingElement啟用 WS-AtomicTransaction 事務流
Reliability (可靠性)ReliableSessionBindingElementWS-ReliableMessaging 訊息送達保證
Security (安全性)SecurityBindingElement傳輸/訊息/混合安全模式
Encoding (編碼)Encoding Binding ElementText/XML, Binary, MTOM, Custom
Transport (傳輸)Transport Binding ElementTCP, HTTP, HTTPS, Named Pipes, MSMQ

五、11 種內建 Binding 完整特性對比

Binding 名稱 配置元素 描述 互操作性 安全性 會話 事務 雙工
BasicHttpBinding basicHttpBinding 基本 Web Service 相容 (BP 1.1) Basic Profile 1.1 (None), Transport, Message None (None) n/a
WSHttpBinding wsHttpBinding 安全、可靠、互操作通用 WS-* Transport, (Message), Mixed (None), Transport, Reliable Session (None), Yes n/a
WSDualHttpBinding wsDualHttpBinding 支援雙工的 WSHttpBinding WS-* (Message) (Reliable Session) (None), Yes Yes
WSFederationHttpBinding wsFederationHttpBinding 支援 WS-Federation 聯合身分 WS-Federation (Message) (None), Reliable Session (None), Yes No
NetTcpBinding netTcpBinding 跨機器 .NET 間最高效能 .NET (Transport), Message Reliable Session, (Transport) (None), Yes Yes
NetNamedPipeBinding netNamedPipeBinding 同機器進程間最高效能 .NET (Transport) None, (Transport) (None), Yes Yes
NetMsmqBinding netMsmqBinding 佇列、離線、跨機器 .NET Message, (Transport), Both (None) (None), Yes No
NetPeerTcpBinding netPeerTcpBinding P2P 多方通訊 Peer (Transport) (None) (None) Yes
MsmqIntegrationBinding msmqIntegrationBinding 與舊版 MSMQ 應用整合 MSMQ (Transport) (None) (None), Yes n/a

六、Binding 選型決策指南

決策流程:

Binding 選型流程圖

快速選型表:

場景首選 Binding備選關鍵理由
跨平台/互操作 (Java, PHP 等)BasicHttpBindingWSHttpBinding最大相容性 / 進階 WS-* 支援
.NET 內網高效能NetTcpBindingNetNamedPipeBinding (同機)Binary 編碼 + TCP,效能最佳
雙工/即時推送NetTcpBindingWSDualHttpBindingTCP 原生雙工 / HTTP 雙工需開埠
離線/佇列/持久NetMsmqBindingMsmqIntegrationBindingMSMQ 佇列機制
P2P/多方協作NetPeerTcpBinding-Peer Channel 架構
聯邦身分/STSWSFederationHttpBinding-WS-Trust/WS-Federation
舊版 ASMX 相容BasicHttpBinding-BP 1.1 相容

七、Programming WCF Services 經典特性圖譜

Binding 特性雷達圖

圖中直觀展示各 Binding 在安全性、互操作性、效能、功能豐富度上的權衡。

總結

  1. Binding 封裝「如何通訊」,核心是 BindingElement 堆疊
  2. 必含編碼 + 傳輸,選配協定(安全、可靠、事務)
  3. 六大層面資訊決定繫結能力邊界
  4. 11 種內建 Binding 涵蓋 90%+ 企業場景,優先使用標準繫結
  5. 選型核心:互操作需求 → 傳輸協定 → 功能需求 (安全/可靠/事務/雙工)
  6. 自訂 Binding 僅在標準無法滿足時使用(如特殊編碼、私有協定)
本文配套源碼下載
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved