C 學習筆記32 WCF

2021-05-27 23:14:41 字數 3213 閱讀 7980

windows communication foundation (wcf) 是用於構建面向服務的應用程式的框架。借助 wcf,可以將資料作為非同步訊息從乙個服務終結點傳送至另乙個服務終結點。服務終結點可以是由 iis 承載的持續可用的服務的一部分,也可以是應用程式中承載的服務。終結點可以是從服務終結點請求資料的服務客戶端。簡單訊息可以是作為 xml 傳送的單個字元或單個單詞,復雜訊息可以是二進位制資料流。一些示例方案包括:

雖然在 wcf 存在之前就可以建立此類應用程式,但 wcf 使終結點的開發比以前更容易。總之,wcf 設計提供一種用於建立 web 服務和 web 服務客戶端的可管理的方式。

wcf 包括以下功能集。有關更多資訊,請參見 wcf 功能詳細資訊.

wcf 是乙個靈活的平台。由於這一極強的靈活性,wcf 還在 microsoft 的一些其他產品中得以利用。如果您也在使用這些產品中的任何產品,通過了解 wcf 的基礎知識,您會立即受益。

與 wcf 配對的第一項技術是 windows workflow foundation (wf)。工作流通過將工作流中的各步驟封裝為「活動」,從而簡化了應用程式開發。在 windows workflow foundation 的第乙個版本中,開發人員必須為工作流建立乙個主機。windows workflow foundation 的下一版本與 wcf 進行了整合,從而允許在 wcf 服務中輕鬆承載任何工作流;通過在 visual studio 2010 和 visual studio 2010 中自動選擇 wf/wcf 作為專案型別可實現此目的。

microsoft biztalk server r2 還利用 wcf 作為通訊技術。biztalk 設計用於接收一種標準化格式的資料,然後將其轉換為另一種格式。必須將訊息傳遞到其**訊息框,在這裡可以使用嚴格的對映,也可以通過使用其中一種 biztalk 功能(如其工作流引擎)來轉換訊息。目前,biztalk 可使用 wcf 業務線 (lob) 介面卡將訊息傳遞到訊息框。

microsoft .net services 是一項雲計算計畫,使用 wcf 生成啟用 internet 的應用程式。使用 .net services 可建立跨信任邊界操作的 wcf 服務。

策略和繫結規定與某一服務進行通訊所需的條件。例如,繫結必須(至少)指定所使用的傳輸(例如 http 或 tcp)和編碼。策略包括安全要求和其他條件,必須滿足這些要求和條件才能與服務進行通訊。

服務執行時層包含僅在服務實際執行期間發生的行為,即該服務的執行時行為。遏制控制處理的訊息數,如果對服務的需求增長到預設限制,該訊息數則會發生變化。錯誤行為指定服務出現內部錯誤時應採取的操作,例如控制傳遞給客戶端的資訊(資訊過多會向惡意使用者提供攻擊的機會)。元資料行為控制是否以及如何向外部提供元資料。例項行為指定可執行的服務例項的數目(例如,singleton 指定只能用單一例項來處理所有訊息)。通過事務行為,可以在失敗時回滾已進行事務處理的操作。排程行為用於控制 wcf 基礎結構處理訊息的方式。

通過擴充套件性功能可以自定義執行時程序。例如,訊息檢查功能用於檢查訊息的各個部分,使用引數篩選功能可以根據作用於訊息頭的篩選器來執行預設操作。

訊息傳遞層由通道組成。通道是以某種方式對訊息進行處理(例如通過對訊息進行身份驗證)的元件。一組通道也稱為「通道堆疊」。通道對訊息和訊息頭進行操作。這與服務執行時層不同,服務執行時層主要涉及對訊息正文內容的處理。

有兩種型別的通道:傳輸通道和協議通道。

傳輸通道讀取和寫入來自網路(或外部的某些其他通訊點)的訊息。某些傳輸通道使用編碼器來將訊息(表示為 xml infoset)轉換為網路所使用的位元組流的表示形式,或將位元組流表示形式轉換為訊息。傳輸通道的示例包括 http、命名管道、tcp 和 msmq。編碼的示例包括 xml 和優化的二進位制檔案。

協議通道經常通過讀取或寫入訊息的其他頭的方式來實現訊息處理協議。此類協議的示例包括 ws-security 和 ws-reliability。

訊息傳遞層說明資料的可能格式和交換模式。ws-security 是對在訊息層啟用安全性的 ws-security 規範的實現。通過 ws-reliable messaging 通道可以保證訊息的傳遞。編碼器提供了大量的編碼,可使用這些編碼來滿足訊息的需要。http 通道指定應使用超文字傳輸協議來傳遞訊息。同理,tcp 通道指定 tcp 協議。事務流通道控制已經過事務處理的訊息模式。通過命名管道通道可以進行程序間通訊。使用 msmq 通道可以與 msmq 應用程式進行互操作。

服務的最終形式為程式。與其他程式類似,服務必須在可執行檔案中執行。這稱為「自承載」服務。

某些服務(如 iis 或 windows 啟用服務 (was))「被承載」,即在外部**管理的可執行檔案中執行。通過 was,可以在執行 was 的計算機上部署 wcf 應用程式時自動啟用該應用程式。還可通過可執行檔案(.exe 檔案)的形式來手動執行服務。服務也可作為 windows 服務自動執行。com+ 元件也可作為 wcf 服務承載。

wcf技術剖析系列:

wcf技術剖析之一:通過乙個asp.net程式模擬wcf基礎架構

wcf技術剖析之二:再談iis與asp.net管道

wcf技術剖析之三:如何進行基於非http的iis服務寄宿

wcf技術剖析之四:基於iis的wcf服務寄宿(hosting)實現揭秘

wcf技術剖析之五:利用asp.net相容模式建立支援會話(session)的wcf服務

wcf技術剖析之六:為什麼在基於asp.net應用寄宿(hosting)下配置的baseaddress無效

wcf技術剖析之七:如何實現wcf與enterlib piab、unity之間的整合

wcf技術剖析之八:clientbase中對channelfactory的快取機制

wcf技術剖析之九:服務**不能得到及時關閉會有什麼後果?

wcf技術剖析之十:呼叫wcf服務的客戶端應該如何進行異常處

理wcf技術剖析之十一:非同步操作在wcf中的應用(上篇)

wcf技術剖析之十一:非同步操作在wcf中的應用(下篇)

wcf技術剖析之十二:資料契約(data contract)和資料契約序列化器(datacontractserializer)

wcf技術剖析之十三:序列化過程中的已知型別(known type)

wcf技術剖析之十四:泛型資料契約和集合資料契約(上篇)

wcf技術剖析之十四:泛型資料契約和集合資料契約(下篇)

wcf技術剖析之十五:資料契約**(datacontractsurrogate)在序列化中的作用

wcf技術剖析之十六:資料契約的等效性和版本控制

《wcf技術內幕》

C 學習筆記32 WCF

windows communication foundation wcf 是用於構建面向服務的應用程式的框架。借助 wcf,可以將資料作為非同步訊息從乙個服務終結點傳送至另乙個服務終結點。服務終結點可以是由 iis 承載的持續可用的服務的一部分,也可以是應用程式中承載的服務。終結點可以是從服務終結點...

WCF學習筆記 Address

address是什麼?address通過乙個uri來唯一的標識乙個wcf終節點 endpoint 它標示了訊息傳送的目的地。在wcf資料通訊中,他解決了服務在 的問題。address的組成 address在wcf中使用system.servicemodel.endpointaddress物件來表示的...

WCF學習筆記1

wcf全面解析 1 wcf初建 建立4個 第乙個類庫service.inte ce 用於服務契約 service contract 引用system.servicemodel.dll 第二個類庫service 用於實際第乙個類庫 第三個控制台hosting 作為服務宿主的控制台應用,引用上面兩個專案...