共用方式為


WCF Web 程式設計物件模型

HTTP Web 程式設計模型可讓開發人員透過基本 HTTP 要求即可公開 Windows Communication Foundation (WCF) Web 服務,而不需要使用 SOAP。HTTP Web 程式設計模型會建置在現有 WCF 擴充性模型之上。這個模型會定義下列類別:

程式設計模型:

通道與發送器基礎結構:

公用程式類別和擴充點:

WebGetAttribute

您可以使用 WebGetAttribute 屬性將服務作業標示為回應至 HTTP GET 要求。這是一種被動作業行為 (IOperationBehavior 方法不會執行任何動作),會將中繼資料新增至作業描述中。套用 WebGetAttribute 會沒有作用,除非已將在作業描述 (尤其是 WebHttpBehavior) 中尋找此中繼資料的行為新增至服務的行為集合中。WebGetAttribute 屬性會採用下表中的選用參數。

參數 描述

BodyStyle

控制是否要將屬性所套用至的服務作業中,所傳送和接收的要求和回應包裝起來。

RequestFormat

控制格式化要求訊息的方法。

ResponseFormat

控制格式化回應訊息的方法。

UriTemplate

指定 URI 樣板,這個樣板會控制對應至套用屬性之服務作業的 GET 要求。

WebHttpBinding

WebHttpBinding 透過使用 WebMessageEncodingBindingElement,併入了 XML、JSON 和原始二進位資料的支援。這是由 HttpsTransportBindingElementHttpTransportBindingElementWebHttpSecurity 物件所組成。WebHttpBinding 是設計與 WebHttpBehavior 配合使用。

WebInvokeAttribute

WebInvokeAttribute 屬性類似於 WebGetAttribute,但它可用來將服務作業標示為回應至 GET 以外的 HTTP 要求。這是一種被動作業行為 (IOperationBehavior 方法不會執行任何動作),會將中繼資料新增至作業描述中。套用 WebInvokeAttribute 會沒有作用,除非已將在作業描述 (尤其是 WebHttpBehavior) 中尋找此中繼資料的行為新增至服務的行為集合中。

WebGetAttribute 屬性會採用下表中的選用參數。

參數 說明

BodyStyle

控制是否要將屬性所套用至的服務作業中,所傳送和接收的要求和回應包裝起來。

Method

指定服務作業對應至的 HTTP 方法。

RequestFormat

控制格式化要求訊息的方法。

ResponseFormat

控制格式化回應訊息的方法。

UriTemplate

指定 URI 樣板,這個樣板會控制對應至套用屬性之服務作業的 GET 要求。

UriTemplate

UriTemplate 類別可讓您定義一組結構類似的 URI。樣板中則包含兩個部分:路徑和查詢。路徑則包含一系列以斜線 (/) 分隔的區段。每個區段都有常值、變數值 (寫在大括號 [{ }] 內,限制為完全符合某個區段的內容) 或必須出現在路徑結尾的萬用字元 (以星號 [*] 表示,會符合路徑其餘部分)。可以完全省略查詢運算式。如果出現,會指定一系列非循序的名稱/值組。查詢運算式的項目可以為常值組 (?x=2) 或變數組 (?x={value})。不允許使用非配對的值。WCF Web 程式設計模型會在內部使用 UriTemplate,以將特定 URI 或 URI 群組對應至服務作業。

UriTemplateTable

UriTemplateTable 類別表示一組相關聯的 UriTemplate 物件,而這限制為開發人員所選擇的物件。您可以比對候選的統一資源識別碼 (URI) 和集合中的樣板,並擷取與相符的樣板相關聯的資料。WCF Web 程式設計模型會在內部使用 UriTemplateTable,以將特定 URI 或 URI 群組對應至服務作業。

WebServiceHost

WebServiceHost 會擴充 ServiceHost,讓它可更輕鬆裝載非 SOAP Web 式服務。如果 WebServiceHost 在服務描述中找不到端點,則會自動在服務的基底位址中建立預設端點。建立預設 HTTP 端點時,WebServiceHost 也會停用 HTTP 說明網頁和 Web 服務描述語言 (WSDL) 的 GET 功能,這樣中繼資料端點就不會干擾預設 HTTP 端點。WebServiceHost 也會確保所有使用 WebHttpBinding 的端點都已附加必要的 WebHttpBehavior。最後,WebServiceHost 會自動設定端點的繫結,以在安全虛擬目錄中使用時處理相關聯的網際網路資訊服務 (IIS) 安全性設定。

WebServiceHostFactory

當服務是在網際網路資訊服務 (IIS) 或 Windows Process Activation Service (WAS) 下裝載時,可以使用 WebServiceHostFactory 類別以動態建立 WebServiceHost。和主應用程式在其中具現化 WebServiceHost 的自我裝載服務不同,透過 IIS 或 WAS 裝載的服務會使用這個類別來建立用於服務的 WebServiceHost。接收到服務的傳入要求時,就會呼叫 CreateServiceHost 方法。

WebHttpBehavior

WebHttpBehavior 會對服務模型層中的 Web 式服務支援,提供必要的格式器、作業選取器等等。這個動作會實作為端點行為 (用於與 WebHttpBinding 搭配使用),並可對每個端點指定格式器和作業選取器,因此可讓相同的服務實作可同時公開 SOAP 和 POX 端點。

擴充 WebHttpBehavior

使用一些虛擬方法即可擴充 WebHttpBehaviorGetOperationSelectorGetReplyClientFormatterGetRequestClientFormatterGetReplyDispatchFormatterGetRequestDispatchFormatter。開發人員可以從 WebHttpBehavior 衍生類別,並覆寫這些方法以自訂預設行為。

WebScriptEnablingBehavior 是擴充 WebHttpBehavior 的範例。WebScriptEnablingBehavior 讓 Windows Communication Foundation (WCF) 端點可從瀏覽器型 ASP.NET AJAX 用戶端接收 HTTP 要求。HTML Form Handler Sample是使用這個擴充點的範例。

WebHttpDispatchOperationSelector

WebHttpDispatchOperationSelector 會使用 UriTemplateUriTemplateTable 類別,以將呼叫分派至服務作業。

相容性

WCF Web 程式設計模型不會使用 SOAP 型訊息,因此不會支援 WS-* 通訊協定。不過,您可以透過兩個不同的端點來公開相同的合約,一個端點使用 SOAP,而另一個端點不使用 SOAP。如需範例,請參閱 HOW TO:將合約公開給 SOAP 和 Web 用戶端

請參閱

參考

WebHttpBinding
WebGetAttribute
WebInvokeAttribute
WebHttpBehavior
WebHttpDispatchOperationSelector

概念

WCF Web 程式設計模型概觀