共用方式為


WCF 服務主機 (WcfSvcHost.exe)

Windows Communication Foundation (WCF) 服務主機 (WcfSvcHost.exe) 可讓您啟動 Visual Studio 調試程式 (F5) 來自動裝載及測試已實作的服務。 接著,您可以使用 WCF 測試用戶端 (WcfTestClient.exe), 或您自己的客戶端來測試服務,以尋找並修正任何潛在的錯誤。

WCF 服務主機

WCF 服務主機會列舉 WCF 服務專案中的服務、載入專案的組態,併為其找到的每個服務具現化主機。 此工具會透過 WCF 服務範本整合到 Visual Studio 中,並在您開始偵錯專案時叫用。

藉由使用 WCF 服務主機,您可以裝載 WCF 服務(在 WCF 服務連結庫專案中),而不需在開發期間撰寫額外的程式碼或認可至特定主機。

備註

WCF 服務主機不支援部分信任。 如果您想要在部分信任中使用 WCF 服務,請勿在 Visual Studio 中使用 WCF 服務連結庫專案範本來建置服務。 相反地,選擇 WCF 服務 WebSite 範本,在 Visual Studio 中建立新的 WebSite,此範本可以在支援 WCF 部分信任的 WebServer 中裝載服務。

WCF 服務主機裝載的項目類型

WCF 服務主機可以裝載下列 WCF 服務程式庫專案類型:WCF 服務程式庫、循序工作流服務程式庫、狀態機器工作流服務程式庫和聚合服務程式庫。 WCF 服務主機也可以裝載那些可以使用 新增項目 功能新增至服務庫專案的服務。 這包括 WCF 服務、WF 狀態機服務、WF 序列式服務、XAML WF 狀態機服務和 XAML WF 序列式服務。

不過,您應該注意此工具無法協助您設定主機。 針對這項工作,您必須手動編輯 App.config 檔案。 此工具也不會驗證使用者定義的組態檔。

謹慎

您不應該使用 WCF 服務主機在生產環境中裝載服務,因為它不是針對此用途所設計。 WCF 服務主機不支援這類環境的可靠性、安全性和管理性需求。 請改用 IIS,因為它提供優越的可靠性與監視功能,而且是裝載服務的慣用解決方案。 一旦服務開發完成,您應該將服務從 WCF 服務主機移轉至 IIS。

在 Visual Studio 內使用 WCF 服務主機的案例

下表列出 [命令行自變數] 對話框中的所有參數,您可以在 Visual Studio 的 [方案總管] 中以滑鼠右鍵按兩下您的項目,選取 [屬性],然後選取 [偵錯] 索引卷標,然後按兩下 [啟動專案]。 這些參數有助於設定 WCF 服務主機。

參數 意義
/client 可選參數,指定服務啟動後執行的可執行文件的路徑。 這會在裝載之後啟動 WCF 測試用戶端。
/clientArg 將字串指定為傳遞至自訂用戶端應用程式的自變數。
/? 顯示說明文字。

使用 WCF 測試用戶端

建立新的 WCF 服務專案並按 F5 啟動調試程式之後,WCF 服務主機就會開始裝載它在專案中找到的所有服務。 WCF 測試用戶端會自動開啟並顯示組態檔中定義的服務端點清單。 從主視窗,您可以測試參數並叫用服務。

若要確定已使用 WCF 測試用戶端,請以滑鼠右鍵按兩下 Visual Studio 中 [方案 總管] 中的項目,選取 [ 屬性],然後選取 [ 偵錯] 索引標籤。按兩下 [啟動專案 ],並確定下列專案會出現在 [命令行自變數 ] 對話框中。

/client:WcfTestClient.exe

使用自訂用戶端

若要使用自定義用戶端,請以滑鼠右鍵按兩下Visual Studio 中[方案總管] 中的項目,選取 [屬性],然後選取 [偵錯] 索引標籤。按兩下 [啟動專案],然後在 [/client] 對話框中編輯 參數,以指向您的自定義用戶端,如下列範例所示。

/client:"path/CustomClient.exe"

當您按下 F5 再次啟動服務時,WCF 服務主機會在啟動調試程式時自動啟動您的自訂用戶端。

您也可以使用 /clientArg: 參數,將字串指定為傳遞至自定義用戶端應用程式的自變數,如下列範例所示。

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

例如,如果您使用同步服務程式庫範本,您可以使用下列命令列引數:

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

指定無用戶端

若要指定 WCF 服務裝載之後不會使用任何用戶端,請以滑鼠右鍵按兩下 Visual Studio 中 [方案 總管] 中的項目,選取 [ 屬性],然後選取 [ 偵錯] 索引標籤。按兩下 [啟動專案 ],並將 [命令行自變數] 對話框保留空白。

使用自訂主機

若要使用自定義主機,請以滑鼠右鍵按兩下Visual Studio 中 [方案 總管] 中的項目,選取 [ 屬性],然後選取 [ 偵錯] 索引卷標。按兩下 [啟動外部程式 ],然後輸入自定義主機的完整路徑。 您也可以使用 [命令行自變數 ] 對話框,指定要傳遞至主機的自變數。

WCF 服務主機用戶介面

當您一開始叫用 WCF 服務主機時(在 Visual Studio 內按 F5 鍵), WCF 服務主機 視窗會自動開啟。 當 WCF 服務主機執行時,程式的圖示會出現在通知區域中。 按兩下圖示以開啟 WCF 服務主機 視窗

當服務裝載期間發生錯誤時,WCF 服務主機對話框會開啟以顯示相關信息。

WCF 服務主機主視窗包含兩個功能表:

  • 檔案:包含 CloseExit 命令。 當您按一下關閉時,WCF 服務主機對話框會關閉,但服務會繼續被承載。 當您按兩下 [結束] 時,WCF 服務主機也會關閉。 這也會停止所有託管服務。

  • 說明:包含包含版本資訊的 About 命令。 它還包含說明命令,可開啟說明檔。

主要 WCF 服務主機 視窗包含兩個區域:

  • 第一個區域是 服務。 其中包含顯示所有服務基本信息的清單。 資訊包括:

    • 服務:列出所有服務。

    • 狀態:列出服務的狀態。 有效值為 「Started」、“Stopped” 和 “Error”。

    • 元數據地址:顯示服務的元數據位址。

  • 第二個區域是 其他資訊。 它會在 [ 服務 ] 區域中選取特定服務行時,顯示服務狀態的詳細說明。 如果狀態為 [錯誤],您可以在畫面上檢視完整的錯誤訊息。

停止 WCF 服務主機

您可以透過下列四種方式關閉 WCF 服務主機:

  • 停止 Visual Studio 中的偵錯會話。

  • [WCF 服務主機] 視窗中的 [檔案] 功能選取 [結束]。

  • 在系統通知區域中,從 WCF 服務主機系統匣的右鍵功能表中選擇 結束

  • 結束使用中的 WCF 測試用戶端。

在沒有系統管理員許可權的情況下使用服務主機

為了讓沒有系統管理員許可權的使用者能夠開發 WCF 服務,在安裝 Visual Studio 期間,會為命名空間http://+:8731/Design_Time_Addresses"建立 ACL(存取控制清單)。 ACL 會設定為 (UI),其中包含登入計算機的所有互動式使用者。 系統管理員可以從此 ACL 新增或移除使用者,或開啟其他埠。此 ACL 可讓使用者使用 WCF 服務自動主機(wcfSvcHost.exe),而不授與他們系統管理員許可權。

您可以在提高許可權的系統管理員帳戶下,使用 Windows Vista 中的 netsh.exe 工具來修改存取權。 以下是使用 netsh.exe的範例。

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

如需 netsh.exe的詳細資訊,請參閱「如何使用 Netsh.exe 工具和 Command-Line 切換」。

另請參閱