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

WCF 專題系列(六):訊息傳遞之綁定 Part 1 — 核心概念與系統綁定自訂

     編輯:關於.NET

什麼是綁定

WCF 封裝傳輸協定、訊息編碼、WS-* 協定集合為綁定,將應用程式模型與通道模型解耦。開發者直接選擇適用綁定調整屬性,無需處理千種組合複雜度。Aaron Skonnard 架構圖:

WCF 架構分層

綁定元素組成

每個綁定包含:

  • 1 個編碼綁定元素(Text/Binary/MTOM)
  • 1 個傳輸綁定元素(HTTP/TCP/命名管道/MSMQ...)
  • 0~N 個協定綁定元素(可靠性/安全性/交易)

通道模型中使用綁定

自訂綁定建立通道監聽器範例:

var bindingElements = new BindingElement[2];
bindingElements[0] = new TextMessageEncodingBindingElement();
bindingElements[1] = new HttpTransportBindingElement();
var binding = new CustomBinding(bindingElements);

var listener = binding.BuildChannelListener<IReplyChannel>(
    new Uri("https://localhost:8080/ChannelApp"), new BindingParameterCollection());
listener.Open();
var channel = listener.AcceptChannel();
channel.Open();
// 接收/回覆訊息迴圈...

自訂系統內建綁定

方式一:組態檔配置(推薦,利於部署後修改)

<basicHttpBinding>
  <binding name="myBindingConfiguration" messageEncoding="Mtom">
    <security mode="Message" />
  </binding>
</basicHttpBinding>

方式二:程式碼配置

var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Message;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;
binding.MessageEncoding = WSMessageEncoding.Mtom;

方式三:從系統綁定轉為 CustomBinding 進階調整

var binding = new BasicHttpBinding { /* 設定屬性 */ };
var customBinding = new CustomBinding(binding);
var elements = binding.CreateBindingElements(); // 取得元素集合

中繼資料公開綁定

綁定細節透過 WSDL + WS-Policy 公開,雙方達成通訊協議。以 BasicHttpBinding + MTOM 為例:

  • WSDL soap:binding transport="https://schemas.xmlsoap.org/soap/http" 公開 HTTP 傳輸
  • Policy 中 wsoma:OptimizedMimeSerialization 宣告 MTOM 編碼

總結

綁定是 WCF 通訊細節的封裝入口,支援組態/程式碼雙重配置,並透過中繼資料實現跨平台互操作。下篇將深入綁定元素內建類型與自訂開發。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved