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。
若要建立自我裝載服務
透過組態定義服務的服務端點。
建立服務的介面。請參閱 HOW TO:定義 Windows Communication Foundation 服務合約。
實作介面以建立服務型別。請參閱 HOW TO:實作 Windows Communication Foundation 服務合約。在下列範例中,實作稱為
MathService
。建立方法來啟動服務。在此範例中,會使用 Main 方法。
使用服務的基底位址來建立 Uri 類別的執行個體。此範例會使用 ConfigurationManager 類別的靜態 AppSettings 屬性,以選取基底位址。請務必將 System.Configuration.dll 的參考加入至您的專案中。您可以接著在組態檔的 <appSettings> 項目底下設定主應用程式的基底位址。
在應用程式的組態檔中,加入 <appSettings> 項目。然後使用包含適當 key 屬性的 <add> 項目。在此情況中,key 值符合上一個步驟中傳入 AppSettings 屬性的參數。
建立 ServiceHost 類別的執行個體,並將代表服務型別與基底位址統一資源識別元 (URI) 的 Type 傳入 ServiceHost。
呼叫 ServiceHost 物件上的 Open 方法。
若要在組態中建立端點
- 將組態檔加入至服務組件所屬的相同目錄中。如需 組態的詳細資訊,請參閱 設定 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