日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WCF学习- 基础概念

發(fā)布時間:2024/6/18 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF学习- 基础概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Windows Communication Foundation (WCF) 是用于構(gòu)建面向服務的應用程序的框架。借助 WCF,可以將數(shù)據(jù)作為異步消息從一個服務終結(jié)點發(fā)送至另一個服務終結(jié)點。服務終結(jié)點可以是由 IIS 承載的持續(xù)可用的服務的一部分,也可以是應用程序中承載的服務。終結(jié)點可以是從服務終結(jié)點請求數(shù)據(jù)的服務客戶端。簡單消息可以是作為 XML 發(fā)送的單個字符或單個單詞,復雜消息可以是二進制數(shù)據(jù)流。一些示例方案包括:

  • 處理企業(yè)事務的安全服務。

  • 將當前數(shù)據(jù)提供給其他服務(例如流量報告或其他監(jiān)視服務)的服務。

  • 使兩個人能夠?qū)崟r通信或交換數(shù)據(jù)的聊天服務。

  • 輪詢一個或多個服務以查找數(shù)據(jù)并將其以邏輯表現(xiàn)形式展示出來的面板應用程序。

  • 將使用 Windows Workflow Foundation 實現(xiàn)的工作流作為 WCF 服務公開。

  • 輪詢服務以查找最新數(shù)據(jù)源的 Silverlight 應用程序。

雖然在 WCF 存在之前就可以創(chuàng)建此類應用程序,但 WCF 使終結(jié)點的開發(fā)比以前更容易。總之,WCF 設(shè)計提供一種用于創(chuàng)建 Web 服務和 Web 服務客戶端的可管理的方式。

WCF 基礎(chǔ)知識

WCF 是一個運行時和一組 API,用于創(chuàng)建在服務與客戶端之間發(fā)送消息的系統(tǒng)。它使用相同的基礎(chǔ)結(jié)構(gòu)和 API 來創(chuàng)建應用程序,這些應用程序可與同一計算機系統(tǒng)上或駐留在另一家公司內(nèi)并通過 Internet 訪問的系統(tǒng)上的其他應用程序進行通信。

消息和終結(jié)點

WCF 建立在基于消息的通信這一概念基礎(chǔ)之上,可以建模為消息(如 HTTP 請求或消息隊列(也稱為 MSMQ)消息)的任何內(nèi)容都可以在編程模型中按照統(tǒng)一方式進行表示。這樣,就可以在不同傳輸機制間提供一個統(tǒng)一的 API。

該模型對“客戶端”(即啟動通信的應用程序)和“服務”(即等待客戶端與其進行通信并響應該通信的應用程序)加以區(qū)分。單個應用程序既可以充當客戶端,也可以充當服務。有關(guān)示例,請參見雙工服務和對等網(wǎng)絡(luò)。

消息在終結(jié)點之間發(fā)送。終結(jié)點是發(fā)送或接收消息(或執(zhí)行這兩種操作)的場所,它們定義消息交換所需要的所有信息。服務公開一個或多個應用程序終結(jié)點(以及零個或更多個基礎(chǔ)結(jié)構(gòu)終結(jié)點),而客戶端生成一個與服務的其中一個終結(jié)點兼容的終結(jié)點。

“終結(jié)點”以基于標準的方式描述消息應發(fā)送到的位置、消息應如何發(fā)送以及消息應具有的形式。服務可以將這些信息作為元數(shù)據(jù)加以公開,而客戶端可以處理這些元數(shù)據(jù)以生成適當?shù)?WCF 客戶端和通信堆棧。

通信協(xié)議

通信堆棧的一個必要元素是傳輸協(xié)議。可以使用常用傳輸協(xié)議(如 HTTP 和 TCP)通過 Intranet 和 Internet 發(fā)送消息。也可以使用其他支持與消息隊列應用程序和對等網(wǎng)絡(luò)網(wǎng)格上的節(jié)點進行通信的傳輸協(xié)議。使用 WCF 的內(nèi)置擴展點可以添加更多傳輸機制。

通信堆棧中的另一個必要元素是指定如何將任意給定消息格式化的編碼。WCF 提供了下列編碼:

  • 文本編碼,一種可互操作的編碼。

  • 消息傳輸優(yōu)化機制 (MTOM) 編碼,該編碼是一種可互操作的方法,用于高效地將非結(jié)構(gòu)化二進制數(shù)據(jù)發(fā)送到服務或從服務接收這些數(shù)據(jù)。

  • 用于實現(xiàn)高效傳輸?shù)亩M制編碼。

使用 WCF 的內(nèi)置擴展點可以添加更多編碼機制(如壓縮編碼)。

消息模式

WCF 支持多種消息模式,包括請求-回復、單向和雙工通信。不同傳輸協(xié)議支持不同的消息模式,因而會影響它們所支持的交互類型。WCF API 和運行庫還能幫助您安全而可靠地發(fā)送消息。

WCF 術(shù)語

WCF 文檔中使用的其他概念和術(shù)語包括:

消息
消息是一個獨立的數(shù)據(jù)單元,它可能由幾個部分組成,包括消息正文和消息頭。

?

服務
服務是一個構(gòu)造,它公開一個或多個終結(jié)點,其中每個終結(jié)點都公開一個或多個服務操作。

?

終結(jié)點
終結(jié)點是用來發(fā)送或接收消息(或同時執(zhí)行這兩種操作)的構(gòu)造。終結(jié)點包括一個定義消息可以發(fā)送到的目的地的位置(地址)、一個描述消息應如何發(fā)送的通信機制規(guī)范(綁定),以及對可以在該位置發(fā)送或接收(或同時執(zhí)行這兩種操作)的一組消息的定義(服務協(xié)定,用于描述可以發(fā)送哪些消息)。

?

WCF 服務作為一個終結(jié)點集合對外公開。

?

應用程序終結(jié)點
一個終結(jié)點,由應用程序公開并對應于該應用程序?qū)崿F(xiàn)的服務協(xié)定。

?

基礎(chǔ)結(jié)構(gòu)終結(jié)點
一個終結(jié)點,由基礎(chǔ)結(jié)構(gòu)公開,以便實現(xiàn)與服務協(xié)定無關(guān)的服務需要或提供的功能。例如,服務可能擁有一個提供元數(shù)據(jù)信息的基礎(chǔ)結(jié)構(gòu)終結(jié)點。

?

地址
指定接收消息的位置。它以統(tǒng)一資源標識符 (URI) 的形式指定。URI 架構(gòu)部分指定用于到達地址的傳輸機制,如 HTTP 和 TCP。URI 的層次結(jié)構(gòu)部分包含一個唯一的位置,其格式取決于傳輸機制。

?

使用終結(jié)點地址可以為服務中的每個終結(jié)點創(chuàng)建唯一的終結(jié)點地址,或者在某些條件下在終結(jié)點之間共享一個地址。下面的示例演示了一個將 HTTPS 協(xié)議和一個非默認端口結(jié)合使用的地址:

?

HTTPS://cohowinery:8005/ServiceModelSamples/CalculatorService
綁定
綁定定義終結(jié)點與外界進行通信的方式。它由一組稱為綁定元素的要素構(gòu)造而成,這些元素“堆疊”在一起以形成通信基礎(chǔ)結(jié)構(gòu)。綁定最起碼應定義傳輸協(xié)議(如 HTTP 或 TCP)和所使用的編碼(如文本或二進制)。綁定可以包含指定詳細信息(例如,用于保護消息的安全機制或終結(jié)點所使用的消息模式)的綁定元素。有關(guān)更多信息,請參見配置服務。

?

綁定元素
綁定元素表示綁定的特定部分,如傳輸協(xié)議、編碼、基礎(chǔ)結(jié)構(gòu)級協(xié)議(如 WS-ReliableMessaging)的實現(xiàn)以及通信堆棧的其他任何要素。

?

行為
行為是控制服務、終結(jié)點、特定操作或客戶端的各個運行時方面的要素。行為按照范圍進行分組:常見行為在全局范圍內(nèi)影響所有終結(jié)點,服務行為僅影響與服務相關(guān)的方面,終結(jié)點行為僅影響與終結(jié)點相關(guān)的屬性,操作級行為影響特定操作。例如,有一種服務行為是遏制,它指定當過多的消息可能超出服務的處理能力時,服務應該如何反應。另一方面,終結(jié)點行為僅控制與終結(jié)點相關(guān)的方面,如查找安全憑據(jù)的方式和位置。

?

系統(tǒng)提供的綁定
WCF 包含許多系統(tǒng)提供的綁定。這些綁定是針對特定方案進行優(yōu)化的綁定元素的集合。例如,WSHttpBinding?是為了與實現(xiàn)各種 WS* 規(guī)范的服務進行互操作而專門設(shè)計的。通過僅提供那些可以正確應用于特定方案的選項,這些預定義的綁定可以節(jié)省時間。如果預定義的綁定不能滿足您的要求,則可以創(chuàng)建您自己的自定義綁定。

?

配置與編碼
可以通過代碼編寫、配置或?qū)烧呓Y(jié)合在一起對應用程序進行控制。配置的優(yōu)點在于,它使非開發(fā)人員(如網(wǎng)絡(luò)管理員)可以在代碼編寫完成后直接對客戶端和服務參數(shù)進行設(shè)置,而不必重新進行編譯。使用配置不僅可以設(shè)置值(如終結(jié)點地址),還可以通過添加終結(jié)點、綁定和行為來實施進一步的控制。通過代碼編寫,開發(fā)人員可以保持對服務或客戶端的所有組件的嚴格控制,而且可以對通過配置完成的所有設(shè)置進行檢查,并根據(jù)需要通過代碼進行重寫。

?

服務操作
服務操作是在服務的代碼中定義的過程,用于實現(xiàn)某種操作的功能。此操作作為一個 WCF 客戶端上的方法向客戶端公開。該方法可以返回一個值,并可采用數(shù)量可選的參數(shù),或是不采用任何參數(shù)且不返回任何響應。例如,一個實現(xiàn)簡單的“Hello”的操作可以用作客戶端存在通知,并可以開始一系列操作。

?

服務協(xié)定
服務協(xié)定將多個相關(guān)的操作聯(lián)系在一起,組成單個功能單元。協(xié)定可以定義服務級設(shè)置,如服務的命名空間、對應的回調(diào)協(xié)定以及其他此類設(shè)置。在大多數(shù)情況下,協(xié)定的定義方法是用所選的編程語言創(chuàng)建一個接口,然后將?ServiceContractAttribute?屬性應用于該接口。通過實現(xiàn)該接口,可生成實際的服務代碼。

?

操作協(xié)定
操作協(xié)定定義參數(shù)并返回操作的類型。在創(chuàng)建定義服務協(xié)定的接口時,可以通過將?OperationContractAttribute?屬性應用于協(xié)定中包含的每個方法定義來表示一個操作協(xié)定。可以將操作建模為采用單個消息作為參數(shù)并返回單個消息,或者建模為采用一組類型作為參數(shù)并返回一個類型。在后一種情況下,系統(tǒng)將確定需要為該操作交換的消息的格式。

?

消息協(xié)定
消息協(xié)定描述消息的格式。例如,它會聲明消息元素應包含在消息頭中還是包含在消息正文中,應該對消息的何種元素應用何種級別的安全性,等等。

?

錯誤協(xié)定
可以將錯誤協(xié)定與服務操作進行關(guān)聯(lián),以指示可能返回到調(diào)用方的錯誤。一個操作可以具有零個或更多個與其相關(guān)聯(lián)的錯誤。這些錯誤是在編程模型中作為異常建模的 SOAP 錯誤。

?

數(shù)據(jù)協(xié)定
服務使用的數(shù)據(jù)類型必須在元數(shù)據(jù)中進行描述,以使其他各方可以與該服務進行交互操作。數(shù)據(jù)類型可以在消息的任何部分使用(例如,作為參數(shù)或返回類型)。如果服務僅使用簡單類型,則無需顯式使用數(shù)據(jù)協(xié)定。

?

宿主
服務必須承載于某個進程中。“宿主”是控制服務的生存期的應用程序。服務可以是自承載的,也可以由現(xiàn)有的宿主進程進行管理。

?

自承載服務
自承載服務是在開發(fā)人員創(chuàng)建的進程應用程序中運行的服務。開發(fā)人員控制服務的生存期、設(shè)置服務的屬性、打開服務(這會將服務設(shè)置為偵聽模式)以及關(guān)閉服務。

?

宿主進程
宿主進程是專為承載服務而設(shè)計的應用程序。這些宿主進程包括 Internet 信息服務 (IIS)、Windows 激活服務 (WAS) 和 Windows 服務。在這些宿主方案中,由宿主控制服務的生存期。例如,使用 IIS 可以設(shè)置包含服務程序集和配置文件的虛擬目錄。在收到消息時,IIS 將啟動服務并控制服務的生存期。

?

實例化
每個服務都具有一個實例化模型。有三種實例化模型:“單個”,在這種模型中,由單個 CLR 對象為所有客戶端提供服務;“每個調(diào)用”,在這種模型中,將創(chuàng)建一個新的 CLR 對象來處理每個客戶端調(diào)用;“每個會話”,在這種模型中,將創(chuàng)建一組 CLR 對象,并且為每個獨立的會話使用一個對象。實例化模型的選擇取決于應用程序要求和服務的預期使用模式。

?

客戶端應用程序
客戶端應用程序是與一個或多個終結(jié)點交換消息的程序。客戶端應用程序通過創(chuàng)建一個 WCF 客戶端實例并調(diào)用該 WCF 客戶端的方法來開始工作。需要注意的是,單個應用程序既可以充當客戶端,也可以充當服務。

?

通道
通道是綁定元素的具體實現(xiàn)。綁定表示配置,而通道是與該配置相關(guān)聯(lián)的實現(xiàn)。因此,每個綁定元素都有一個相關(guān)聯(lián)的通道。通道堆疊在一起以形成綁定的具體實現(xiàn):通道堆棧。

?

WCF 客戶端
WCF 客戶端是一個將服務操作作為方法公開的客戶端應用程序構(gòu)造(用您所選的 .NET Framework 編程語言編寫,如 Visual Basic 或 Visual C#)。任何應用程序都可以承載 WCF 客戶端,包括承載服務的應用程序。因此,可以創(chuàng)建一個包含其他服務的 WCF 客戶端的服務。

?

通過使用?ServiceModel 元數(shù)據(jù)實用工具 (Svcutil.exe)?并使其指向正在運行的發(fā)布元數(shù)據(jù)的服務,可以自動生成 WCF 客戶端。

?

元數(shù)據(jù)
服務的元數(shù)據(jù)描述服務的各種特征,外部實體需要了解這些特征以便與該服務進行通信。ServiceModel 元數(shù)據(jù)實用工具 (Svcutil.exe)?可以使用元數(shù)據(jù)生成 WCF 客戶端以及客戶端應用程序可用來與服務進行交互的伴隨配置。

?

服務所公開的元數(shù)據(jù)包括 XML 架構(gòu)文檔(用于定義服務的數(shù)據(jù)協(xié)定)和 WSDL 文檔(用于描述服務的方法)。

?

啟用元數(shù)據(jù)后,WCF 通過檢查服務及其終結(jié)點自動生成服務的元數(shù)據(jù)。若要發(fā)布服務的元數(shù)據(jù),必須顯式啟用元數(shù)據(jù)行為。

?

安全性
WCF 中的安全性包括保密性(為防止竊聽而進行的消息加密)、完整性(用于檢測消息篡改行為的方法)、身份驗證(用于驗證服務器和客戶端的方法)以及授權(quán)(資源訪問控制)。通過利用現(xiàn)有安全機制(如 TLS over HTTP,也稱為 HTTPS)或通過實現(xiàn)各種 WS-* 安全規(guī)范中的一個或多個規(guī)范,可以提供這些功能。

?

傳輸安全模式
傳輸安全模式指定由傳輸層機制(如 HTTPS)提供保密性、完整性和身份驗證。在使用像 HTTPS 這樣的傳輸協(xié)議時,此模式的優(yōu)點在于性能出色,而且由于它在 Internet 上非常流行,因此很容易理解。其缺點在于,這種安全分別應用于通信路徑中的每個躍點,這使得通信容易遭受“中間人”攻擊。

?

消息安全模式
消息安全模式指定通過實現(xiàn)一個或多個安全規(guī)范來保證安全,如名為“Web Services Security: SOAP Message Security”(Web 服務安全:SOAP 消息安全)的規(guī)范。每個消息都包含必要的安全機制,用于在消息傳輸過程中保證安全,并使接收方能夠檢測到篡改和對消息進行解密。從這種意義上說,安全信息包裝在每個消息中,從而提供了跨多個躍點的端到端安全。由于安全信息成為消息的一部分,因此還可以在消息中包含多種憑據(jù)(這些憑據(jù)稱為“聲明”)。這種方法還具有這樣一個優(yōu)點,即消息可以通過任意傳輸協(xié)議(包括在其起點和目標之間的多個傳輸協(xié)議)安全地傳送。這種方法的缺點在于所使用的加密機制較為復雜,使性能受到影響。

?

使用消息憑據(jù)的傳輸安全模式
此模式指定使用傳輸層來提供消息的保密性、身份驗證和完整性,并且每個消息都可以包含消息接收方所要求的多個憑據(jù)(聲明)。

?

WS-*
一組不斷增加的、在 WCF 中予以實現(xiàn)的 Web 服務 (WS) 規(guī)范(如 WS-Security、WS-ReliableMessaging 等)的簡寫。

轉(zhuǎn)載于:https://www.cnblogs.com/loner/p/3580927.html

總結(jié)

以上是生活随笔為你收集整理的WCF学习- 基础概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。