共用方式為


裝載資料服務 (WCF 資料服務)

您可以藉由使用 WCF Data Services ,建立一個服務將資料公開為 Open Data Protocol (OData) 摘要。 這個資料服務會定義為繼承自 DataService 的類別。 這個類別會提供處理要求訊息、對資料來源執行更新及產生回應訊息所需的功能 (根據 OData 所要求)。 但是,資料服務無法繫結至及接聽內送 HTTP 要求所適用的網路通訊端。 對於這個必要的功能而言,資料服務會依賴裝載的元件。

資料服務主機會代表資料服務執行下列工作:

  • 接聽要求,並將這些要求路由傳送到資料服務。

  • 為每一個要求建立資料服務的執行個體。

  • 要求資料服務處理傳入的要求。

  • 代表資料服務傳送回應。

為了簡化資料服務的裝載,WCF Data Services 已設計來與 Windows Communication Foundation (WCF) 整合。 資料服務會提供預設 WCF 實作,此實作會當做 ASP.NET 應用程式中的資料服務主機。 因此,您可以透過下列其中一個方法來裝載資料服務:

  • 在 ASP.NET 應用程式中。

  • 在支援自我裝載之 WCF 服務的 Managed 應用程式中。

  • 在某個其他自訂資料服務主機中。

在 ASP.NET 應用程式中裝載資料服務

當您在 Visual Studio 中使用 [加入新項目] 對話方塊來定義 ASP.NET 應用程式中的資料服務時,此工具會在專案中產生兩個新檔案。 第一個檔案的副檔名為 .svc,而且它會指示 WCF 執行階段如何具現化資料服務。 下列是這個檔案的範例,適用於當您完成快速入門時所建立的 Northwind 範例資料服務:

<%@ ServiceHost Language="C#" 
    Factory="System.Data.Services.DataServiceHostFactory, 
            System.Data.Services, Version=4.0.0.0, 
            Culture=neutral, PublicKeyToken=b77a5c561934e089" 
    Service="NorthwindService.Northwind" %> 

這個指示詞會告訴應用程式針對指名的資料服務類別建立服務主機,其方式是使用 DataServiceHostFactory 類別。

.svc 檔案的程式碼後置頁面包含資料服務本身之實作的類別,如下列 Northwind 範例資料服務所定義:

Public Class Northwind
    Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>

因為資料服務的行為就像 WCF 服務一樣,所以資料服務會與 ASP.NET 整合並遵循 WCF Web 程式設計模型。 如需詳細資訊,請參閱 WCF Services and ASP.NETWeb Programming Model

自我裝載的 WCF 服務

因為它會合併 WCF 實作,所以 WCF Data Services 支援自我裝載的資料服務當做 WCF 服務。 服務可以在任何 .NET Framework 應用程式中自我裝載,例如在主控台應用程式中。 繼承自 WebServiceHostDataServiceHost 類別是用來具現化特定位址上的資料服務。

自我裝載可用於開發及測試,因為它可更輕鬆地部署服務以及針對服務進行疑難排解。 但是,這種裝載不會提供 ASP.NET 或 Internet Information Services (IIS) 所提供的進階裝載和管理功能。 如需詳細資訊,請參閱Hosting in a Managed Application

定義自訂資料服務主機

如果是 WCF 主機實作太具限制性的情況,您也可以為資料服務定義自訂主機。 實作 IDataServiceHost 介面的任何類別都可以當做資料服務的網路主機使用。 自訂主機必須實作 IDataServiceHost 介面,而且必須能夠處理資料服務主機的下列基本責任:

  • 為資料服務提供服務根路徑。

  • 針對適當的 IDataServiceHost 成員實作處理要求和回應標頭資訊。

  • 處理資料服務所引發的例外狀況。

  • 驗證查詢字串中的參數。

另請參閱

概念

將資料公開為服務 (WCF 資料服務)
設定資料服務 (WCF Data Services)

其他資源

定義 WCF Data Services