共用方式為


Windows Communication Foundation 架構

下圖說明 Windows Communication Foundation (WCF) 架構的主要層級。

WCF 架構

WCF 架構

合約和描述

合約會定義訊息系統的各個層面。 數據合約描述組成服務可建立或取用之每個訊息的每個參數。 訊息參數是由 XML 架構定義語言 (XSD) 檔案所定義,可讓任何瞭解 XML 的系統來處理檔。 當互作性要求這類精確度時,訊息合約會使用SOAP通訊協議來定義特定訊息部分,並允許更精細地控制訊息的部分。 服務合約指定了服務的具體方法簽名,並作為其中一種支援的程式語言介面(例如Visual Basic或Visual C#)進行分發。

原則和系結規定與服務通訊所需的條件。 例如,系結必須(至少)指定所使用的傳輸(例如 HTTP 或 TCP),以及編碼方式。 原則包括安全性需求和其他必須符合才能與服務通訊的條件。

服務執行階段

服務運行時間層包含只有在服務的實際作業期間發生的行為,也就是服務的運行時間行為。 節流控制消息的處理數量,並可根據服務需求成長到預設限制時進行調整。 錯誤行為會指定當服務發生內部錯誤時所發生的狀況,例如,藉由控制要傳達給客戶端的資訊。 (太多資訊可能讓惡意使用者在發動攻擊時取得優勢。)元數據行為控管元數據是否及如何向外界提供。 實例行為會指定可以執行服務的實例數目(例如,單一實例只指定一個實例來處理所有訊息)。 交易行為使當發生失敗時交易的操作可以復原。 分派行為是用來控制 WCF 基礎結構如何處理訊息的方式。

擴充性可讓您自定義運行時間進程。 例如,訊息檢查是檢查訊息部分的工具,而參數篩選可讓預設動作根據訊息標頭上執行的篩選而發生。

訊息傳送

傳訊層是由 通道所組成。 通道是一種元件,以某種方式處理訊息,例如驗證訊息。 一組通道也稱為 通道堆疊。 通道會在訊息和訊息標頭上運作。 這與服務執行階層不同,該層主要涉及處理訊息主體的內容。

通道有兩種類型:傳輸通道和通訊協定通道。

傳輸通道會從網路讀取和寫入訊息(或與外界的一些其他通訊點)。 某些傳輸會使用編碼器來進行訊息(以 XML Infosets 表示)與網路所使用位元組流表示的雙向轉換。 傳輸的範例包括 HTTP、命名管道、TCP 和 MSMQ。 編碼範例為 XML 和優化二進位檔。

通訊協定通道會實作訊息處理通訊協定,通常是藉由讀取或寫入其他標頭至訊息。 這類通訊協定的範例包括 WS-Security 和 WS 可靠性。

傳訊層說明數據的可能格式和交換模式。 WS-Security 是啟用訊息層安全性之 WS-Security 規格的實作。 WS-Reliable 傳訊通道可讓您保證訊息傳遞。 編碼器提供各種不同的編碼方式,可用來符合訊息的需求。 HTTP 通道會指定超文字傳輸通訊協定用於訊息傳遞。 TCP 信道同樣指定 TCP 通訊協定。 交易流程通道會控管交易訊息模式。 命名管道通道用於程序間通訊。 MSMQ 通道可讓您與 MSMQ 應用程式互作。

主機代管與啟用

在最後一種形式中,服務是程式。 與其他程序一樣,服務必須在可執行檔中執行。 這稱為 自架 服務。

服務也可以 裝載或執行於外部代理程式所管理的可執行檔中,例如 IIS 或 Windows 啟用服務 (WAS)。 WAS 可讓 WCF 應用程式在執行 WAS 的電腦上部署時自動啟動。 服務也可以手動執行為可執行檔(.exe 檔案)。 服務也可以以 Windows 服務的形式自動執行。 COM+ 元件也可以裝載為 WCF 服務。

另請參閱