
WCF 架構
WCF 具有分層架構,為開發各種分散式應用程式提供了充分的支援。以下是架構的詳細說明。

契約
契約層位於應用程式層之上,包含與現實世界契約類似的資訊,這些資訊指定服務的執行方式以及可訪問資訊的型別。契約主要有以下四種類型:
服務契約 - 此契約向客戶端以及外部世界提供有關端點服務和通訊過程中使用的協議的資訊。
資料契約 - 服務交換的資料由資料契約定義。客戶端和服務都必須與資料契約一致。
訊息契約 - 訊息契約控制資料契約。它主要用於自定義 SOAP 訊息引數的型別格式。這裡需要提到的是,WCF 使用 SOAP 格式進行通訊。SOAP 代表簡單物件訪問協議。
策略和繫結 - 與服務通訊有一定的前提條件,這些條件由策略和繫結契約定義。客戶端需要遵循此契約。
服務執行時
服務執行時層位於契約層之下。它指定執行時發生的各種服務行為。許多型別的行為可以進行配置並屬於服務執行時。
節流行為 - 管理處理的訊息數量。
錯誤行為 - 定義任何內部服務錯誤發生的的結果。
元資料行為 - 指定元資料對外部世界的可用性。
例項行為 - 定義需要建立多少個例項才能使它們可供客戶端使用。
事務行為 - 在發生任何故障時啟用事務狀態的更改。
排程行為 - 控制 WCF 基礎結構處理訊息的方式。
併發行為 - 控制在客戶端-伺服器通訊期間並行執行的函式。
引數過濾 - 具有在呼叫方法之前驗證方法引數的過程的功能。
訊息傳遞
此層由多個通道組成,主要處理要在兩個端點之間通訊的訊息內容。一組通道形成通道堆疊,組成通道堆疊的兩種主要型別的通道如下:
傳輸通道 - 這些通道位於堆疊底部,負責使用 HTTP、TCP、對等、命名管道和 MSMQ 等傳輸協議傳送和接收訊息。
協議通道 - 這些通道位於堆疊頂部,也稱為分層通道,透過修改訊息來實現線級協議。
啟用和託管
WCF 架構的最後一層是實際託管服務或可以執行服務以方便客戶端訪問的位置。這可以透過以下簡要討論的各種機制來完成。
IIS - IIS 代表 Internet Information Service。它透過服務使用 HTTP 協議提供了眾多優勢。這裡不需要主機程式碼來啟用服務程式碼;相反,服務程式碼會自動啟用。
Windows 啟用服務 - 這通常稱為 WAS,並隨 IIS 7.0 一起提供。這裡可以使用 TCP 或命名管道協議進行基於 HTTP 和非 HTTP 的通訊。
自託管 - 這是一種機制,WCF 服務可以作為控制檯應用程式進行自託管。這種機制在選擇所需的協議和設定自己的定址方案方面提供了驚人的靈活性。
Windows 服務 - 使用此機制託管 WCF 服務是有利的,因為由於沒有執行時啟用,服務將保持啟用狀態並可供客戶端訪問。