共用方式為


HOW TO:裝載和執行基本 Windows Communication Foundation 服務

這是在建立基本 Windows Communication Foundation (WCF) 服務,及可以呼叫該服務的用戶端時,必須進行的六個工作中的第三個。如需這六個工作的概觀,請參閱使用者入門教學課程主題。

本主題說明如何執行基本 Windows Communication Foundation (WCF) 服務。這個程序包含下列步驟:

  • 建立服務的基底位址。
  • 建立服務的服務主機。
  • 啟用中繼資料交換。
  • 開啟服務主機。

這個程序之後的範例會列出這項工作所會撰寫的完整程式碼清單。將下列程式碼加入 Program 類別中所定義的 Main() 方法。這個類別是在您建立 Service 方案時所產生的。

若要設定服務的基底位址

  1. 針對服務的基底位址建立 Uri 執行個體。這個 URI 會指定 HTTP 結構描述、您的本機電腦、連接埠號碼 8000 以及到服務的路徑 ServiceModelSample/Service,它是在服務合約中服務的命名空間所指定的。

若要裝載服務

  1. 匯入 System.ServiceModel.Description 命名空間。這一行程式碼必須連同 usingimports 陳述式的其他部分,置於 Program.cs/Program.vb 檔案的頂端。

  2. 建立新的 ServiceHost 執行個體來裝載服務。您必須指定可實作服務合約和基底位址的型別。以這個範例來說,基底位址為 https://localhost:8000/ServiceModelSamples/Service,而 https://localhost:8000/ServiceModelSamples/Service 是實作服務合約的型別。

  3. 新增擷取 CommunicationExceptiontry-catch 陳述式,並將下列三個步驟中的程式碼新增至 try 區塊。catch 子句應該顯示錯誤訊息然後呼叫 selfHost.Abort()

  4. 新增可公開服務的端點。若要執行這個步驟,您必須指定已公開端點的合約、繫結,以及端點的位址。以這個範例來說,將 ICalculator 指定為合約、將 WSHttpBinding 指定為繫結,並且將 CalculatorService 指定為位址。請注意,端點位置要為相對位址。端點的完整位址為基底位址和端點位址的組合。在這個情況中,完整位址為 https://localhost:8000/ServiceModelSamples/Service/CalculatorService

  5. 啟用中繼資料交換。若要執行這個步驟,請新增服務中繼資料行為。首先,建立 ServiceMetadataBehavior 執行個體,並將 HttpGetEnabled 屬性設定為 true,接著再將新行為加入至服務。如需 發行中繼資料時的安全性問題詳細資訊,請參閱中繼資料的安全性考量

  6. 開啟 ServiceHost 並等候傳入訊息。當使用者按下 ENTER 鍵時,關閉 ServiceHost

若要驗證服務是否執行中

  1. 從 Visual Studio 內執行 service.exe 工具。在 Windows Vista 上執行時,服務必須以系統管理員權限的身分來執行。因為 Visual Studio 是以系統管理員權限的身分執行,所以 service.exe 也要以系統管理員權限的身分執行。您也可以利用系統管理員權限開啟命令提示字元執行,然後透過命令提示字元執行 service.exe。

  2. 開啟 Internet Explorer 並瀏覽到偵錯頁面 https://localhost:8000/ServiceModelSamples/Service。

範例

下列範例包含此教學課程上一個步驟的服務合約和實作,並且會將服務裝載到主控台應用程式中。請將下列項目編譯到名為 Service.exe 的可執行檔中。

在編譯程式碼時,請務必參考 System.ServiceModel.dll

ms730935.note(zh-tw,VS.90).gif注意:
此類服務需要權限才能將 HTTP 位址註冊到電腦上,以便接聽。系統管理員帳戶具有此權限,但是非系統管理員則必須被授與 HTTP 命名空間的權限。如需 如何設定命名空間保留區的詳細資訊,請參閱設定 HTTP 和 HTTPS。在 Visual Studio 下執行時,必須以系統管理員權限的身分執行 service.exe。

服務目前正在執行中。繼續進行 HOW TO:建立 Windows Communication Foundation 用戶端。如需疑難排解的詳細資訊,請參閱使用者入門教學課程疑難排解

請參閱

其他資源

Getting Started Sample
Self-Host