共用方式為


HOW TO:在 Managed 應用程式中裝載 WCF 服務

若要將服務裝載在 Managed 應用程式中,請將服務的程式碼嵌入 Managed 應用程式程式碼,然後以命令式程式碼或以宣告式組態定義服務端點,最後建立 ServiceHost 的執行個體。

若要開始接收訊息,請呼叫 ServiceHost 上的 Open。這樣會建立並開啟服務的接聽項。用這種方式來裝載服務一般稱為「自我裝載」,因為 Managed 應用程式會自行執行裝載工作。若要關閉服務,請呼叫 ServiceHost 上的 System.ServiceModel.Channels.CommunicationObject.Close

您也可以透過 Managed Windows 服務、網際網路資訊服務 (IIS),或是 Windows Process Activation Service (WAS) 來裝載服務。如需 服務的裝載選項的詳細資訊,請參閱裝載服務

將服務裝載在 Managed 應用程式中是最有彈性的選項,因為這麼做只需要部署最基本基礎結構。如需 將服務裝載在 Managed 應用程式的詳細資訊,請參閱在 Managed 應用程式中裝載

下列程序示範如何在主控台應用程式中實作自我裝載的服務。如需以此程序為基礎的實用範例,請參閱Self Host Sample

若要建立自我裝載服務

  1. 透過組態定義服務的服務端點。

  2. 建立服務的介面。請參閱 HOW TO:定義 Windows Communication Foundation 服務合約

  3. 實作介面以建立服務型別。請參閱 HOW TO:實作 Windows Communication Foundation 服務合約。在下列範例中,實作稱為 MathService

  4. 建立方法來啟動服務。在此範例中,會使用 Main 方法。

  5. 使用服務的基底位址來建立 Uri 類別的執行個體。此範例會使用 ConfigurationManager 類別的靜態 AppSettings 屬性,以選取基底位址。請務必將 System.Configuration.dll 的參考加入至您的專案中。您可以接著在組態檔的 <appSettings> 項目底下設定主應用程式的基底位址。

  6. 在應用程式的組態檔中,加入 <appSettings> 項目。然後使用包含適當 key 屬性的 <add> 項目。在此情況中,key 值符合上一個步驟中傳入 AppSettings 屬性的參數。

  7. 建立 ServiceHost 類別的執行個體,並將代表服務型別與基底位址統一資源識別元 (URI) 的 Type 傳入 ServiceHost

  8. 呼叫 ServiceHost 物件上的 Open 方法。

若要在組態中建立端點

  1. 將組態檔加入至服務組件所屬的相同目錄中。如需 組態的詳細資訊,請參閱 設定 Windows Communication Foundation 服務的繫結

範例

下列範例會建立 ServiceHost 物件來裝載型別為 CalculatorService 的服務,然後呼叫 ServiceHost 上的 Open 方法。程式碼會提供基底位址,而組態則會提供相對路徑。

若要透過 ServiceMetadata Utility Tool (svcutil.exe) 建立服務的用戶端,端點繫結必須使用 HTTP 通訊協定。如需 繫結的詳細資訊,請參閱使用繫結來設定服務和用戶端系統提供的繫結。如需以此主題為基礎的完整範例,請參閱Self-Host範例。

請參閱

工作

HOW TO:在 IIS 中裝載 WCF 服務
HOW TO:定義 Windows Communication Foundation 服務合約
HOW TO:實作 Windows Communication Foundation 服務合約

參考

Uri
AppSettings
ConfigurationManager

概念

裝載服務
使用繫結來設定服務和用戶端
系統提供的繫結

其他資源

Self Host
Service Metadata Utility Tool (svcutil.exe)