共用方式為


Visual Studio 中的 Windows Communication Foundation 服務和 WCF 資料服務

Visual Studio 2008 提供多種工具供您使用 Windows Communication Foundation (WCF) 和 WCF 資料服務,這些是用於建立分散式應用程式的 Microsoft 技術。 本主題提供以 Visual Studio 為主的服務簡介。

何謂 WCF?

Windows Communication Foundation (WCF) 是一種統一架構,用於建立安全、可靠、可交易且具互通性的分散式應用程式。 在舊版 Visual Studio 中,有一些可用於在應用程式之間進行通訊的技術。

如果您要藉由在任何平台都能存取資料的方式來共用資訊,可能就要使用 Web 服務 (也就是 ASMX Web 服務)。 如果您只是要在用戶端和執行 Windows 作業系統的伺服器之間移動資料,可以使用 .NET 遠端處理。 如果要進行交易式通訊,可以使用企業服務 (DCOM);而如果要用佇列模型,則可以使用訊息佇列 (也稱為 MSMQ)。

WCF 會在統一的程式撰寫模型 (Programming Model) 下,將這些技術統籌為一種功能。 這樣可簡化開發分散式應用程式的工作。

何謂 WCF 資料服務

WCF 資料服務 是與資料庫直接互動的服務,可讓您使用標準 HTTP 動作 (例如 GET、POST、PUT 或 DELETE) 傳回資料。 一般而言,WCF 資料服務 是用於建立、更新或刪除資料庫記錄之應用程式的好選擇。 如需詳細資訊,請參閱 ADO.NET Data Services 架構

WCF 程式撰寫模型

WCF 程式撰寫模型主要是以兩個實體 (WCF 服務和 WCF 用戶端) 之間的通訊為基礎。 程式撰寫模型會封裝在 .NET Framework 的 System.ServiceModel 命名空間中。

WCF 服務

WCF 服務則是以介面為基礎,這個介面會定義服務和用戶端之間的合約。 這個服務會使用 ServiceContractAttribute 屬性加上標記,如下列程式碼所示:

<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

您可以使用 OperationContractAttribute 屬性為 WCF 服務所公開的函式或方法加上標記,就可以定義它們。 此外,也可以使用 DataContractAttribute 屬性為複合型別加上標記,即可公開序列化的資料。 這樣可在用戶端中啟用資料繫結。

介面與其方法完成定義之後,就會封裝在實作介面的類別中。 單一 WCF 服務類別可以實作多個服務合約。

透過所謂的「端點」(Endpoint) 公開 WCF 服務,便能使用該服務。 端點可提供唯一一種與服務通訊的方式。您無法如同使用其他類別一樣,透過直接參考來存取服務。

端點是由位址、繫結和合約所組成。 位址會定義服務的位置,可以是 URL、FTP 位址,或是網路或本機路徑。 繫結則會定義您與服務通訊的方式。 WCF 繫結可提供多樣化的模型,讓您指定 HTTP 或 FTP 等通訊協定、並指定 Windows 驗證或使用者名稱和密碼這類安全性機制等等。 合約則包含 WCF 服務類別所公開的作業。

您可以針對單一 WCF 服務公開多個端點。 這樣可讓不同的用戶端以不同的方式與相同的服務通訊。 例如,銀行服務可為多位員工提供一個端點,並為多個外部客戶提供另一個端點,而這些端點都使用不同的位址、繫結及/或合約。

WCF 用戶端

WCF 用戶端是由 Proxy 和端點組成,Proxy 可讓應用程式與 WCF 服務通訊,而此端點符合針對服務所定義的端點。 Proxy 是在用戶端的 app.config 檔案中產生,其中包含服務所公開之型別和方法的相關資訊。 針對公開多個端點的服務,用戶端可以選取一個最符合需求的端點。例如,要透過 HTTP 進行通訊並使用 Windows 驗證。

建立 WCF 用戶端之後,再於程式碼中參考服務,就如同參考其他物件一樣。 例如,若要呼叫稍早提及的 GetData 方法,您可以撰寫類似如下的程式碼:

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

Visual Studio 中的 WCF 工具

Visual Studio 2008 提供多種工具,可協助您建立 WCF 服務和 WCF 用戶端。 如需示範這些工具的逐步解說,請參閱逐步解說:建立和存取 WCF 服務

建立及測試 WCF 服務

您可以使用 WCF Visual Studio 範本為基礎,快速建立自己的服務。 接著,再使用 WCF 服務自動裝載和 WCF 測試用戶端,對服務進行偵錯和測試。 這些工具可提供快速且便利的偵錯與測試循環,並去除在早期認可裝載模型的需求。

WCF 範本

WCF Visual Studio 範本可提供服務部署的基本類別結構。 您可以在 [加入新的專案] 對話方塊中找到一些可用的 WCF 範本。 這些範本包括 WCF 服務庫專案、WCF 服務網站和 WCF 服務項目等範本。

當您選取範本時,會針對服務合約、服務實作和服務組態加入檔案。 所有必要屬性則都已加入,如此您便能建立簡單的 "Hello World" 服務型別,而完全不需要撰寫程式碼。 您當然想要加入程式碼以針對實際服務提供函式和方法,不過範本可以先為您提供基本基礎。

若要進一步了解 WCF 範本,請參閱 WCF Visual Studio Templates

WCF 服務裝載

當您啟動 WCF 服務專案的 Visual Studio 偵錯工具 (按 F5 即可) 時,WCF 服務主機就會自動開始在本機裝載服務。 WCF 服務主機會列舉 WCF 服務專案中的服務、載入專案組態,並具現化找到之每個服務的主機。

使用 WCF 服務主機時,您可以在開發期間測試 WCF 服務,而不需要撰寫額外的程式碼或認可特定主機。

若要進一步了解 WCF 服務主機,請參閱 WCF Service Host (WcfSvcHost.exe)

WCF 測試用戶端

WCF 測試用戶端工具可讓您輸入測試參數、將該輸入內容提交至 WCF 服務,然後檢視服務傳回的回應。 當您結合 WCF 測試用戶端和 WCF 服務主機時,就可以更方便地測試服務。

按 F5 開始偵錯 WCF 服務專案時,[WCF 測試用戶端] 隨即開啟,並顯示組態檔中定義的服務端點清單。 您可以測試參數並啟動服務,再重複此程序以連續測試及驗證服務。

若要進一步了解 WCF 測試用戶端,請參閱 WCF Test Client (WcfTestClient.exe)

在 Visual Studio 中存取 WCF 服務

Visual Studio 2008 會簡化建立 WCF 用戶端的工作。藉由使用 [加入服務參考] 對話方塊,自動為您加入的服務產生 Proxy 和端點。 所有需要的組態資訊都已加入至 app.config 檔案。絕大多數您只需要具現化服務就能使用。

[加入服務參考] 對話方塊可讓您輸入服務的位址,或者搜尋已在方案中定義的服務。 這個對話方塊會傳回服務清單,以及這些服務所提供的作業。 它也能讓您根據將在程式碼中參考的服務來定義命名空間。

[設定服務參考] 對話方塊可讓您自訂服務的組態。 您可以變更服務的位址、指定存取層級、非同步行為和訊息合約型別,並可設定型別重複使用。

相關主題

標題

描述

逐步解說:建立和存取 WCF 服務

提供逐步示範,說明如何在 Visual Studio 中建立和使用 WCF 服務。

逐步解說:在 Visual Studio 中建立和存取 WCF 資料服務

提供逐步示範,說明如何在 Visual Studio 中建立和使用 WCF 資料服務。

Using the WCF Development Tools

討論如何建立和測試 Visual Studio 中的 WCF 服務。

HOW TO:加入、更新或移除服務參考

說明如何在專案中加入、更新或移除 WCF 服務。

HOW TO:加入、更新或移除 WCF 資料服務參考

討論如何參考和使用 Visual Studio 中的 WCF 資料服務。

HOW TO:將參考加入 Web 服務

說明如何將 XML (ASMX) Web 服務的參考加入至專案。

HOW TO:選取服務端點

說明如何選取 WCF 服務的端點 (可公開多個端點)。

HOW TO:非同步呼叫服務方法

說明如何非同步呼叫 WCF 服務。

HOW TO:繫結服務傳回的資料

說明如何讓資料繫結至 WCF 服務。

HOW TO:設定服務以重複使用現有類型

說明如何啟用或停用 WCF 服務的型別共用。

服務參考的疑難排解

說明使用服務參考時的常見錯誤,以及如何避免這些錯誤。

偵錯 WCF 服務

描述在偵錯 WCF 服務時可能會遇到的常見偵錯問題和技術。

Windows Communication Foundation 驗證服務概觀

說明如何使用 WCF 提供網站的角色服務。

Messaging in the .NET Compact Framework

說明 .NET Compact Framework 中的 WCF 訊息層支援。

逐步解說:建立 N-Tier 資料應用程式

提供逐步指示,說明如何建立具型別資料集,並將 TableAdapter 和資料集程式碼分隔成多個專案。

加入服務參考對話方塊

描述 [加入服務參考] 對話方塊的使用者介面項目。

設定服務參考對話方塊

描述 [設定服務參考] 對話方塊的使用者介面項目。

Reference

System.ServiceModel

System.Data.Services