裝載資料服務 (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.NET 和 Web Programming Model。
自我裝載的 WCF 服務
因為它會合併 WCF 實作,所以 WCF Data Services 支援自我裝載的資料服務當做 WCF 服務。 服務可以在任何 .NET Framework 應用程式中自我裝載,例如在主控台應用程式中。 繼承自 WebServiceHost 的 DataServiceHost 類別是用來具現化特定位址上的資料服務。
自我裝載可用於開發及測試,因為它可更輕鬆地部署服務以及針對服務進行疑難排解。 但是,這種裝載不會提供 ASP.NET 或 Internet Information Services (IIS) 所提供的進階裝載和管理功能。 如需詳細資訊,請參閱Hosting in a Managed Application。
定義自訂資料服務主機
如果是 WCF 主機實作太具限制性的情況,您也可以為資料服務定義自訂主機。 實作 IDataServiceHost 介面的任何類別都可以當做資料服務的網路主機使用。 自訂主機必須實作 IDataServiceHost 介面,而且必須能夠處理資料服務主機的下列基本責任:
為資料服務提供服務根路徑。
針對適當的 IDataServiceHost 成員實作處理要求和回應標頭資訊。
處理資料服務所引發的例外狀況。
驗證查詢字串中的參數。
另請參閱
概念
將資料公開為服務 (WCF 資料服務)
設定資料服務 (WCF Data Services)