WCF 偵錯的限制
更新:2007 年 11 月
這個主題適用於:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express 版 |
||||
Standard 版 |
||||
Pro/Team 版 |
表格圖例:
套用 |
|
不套用 |
|
預設隱藏的命令。 |
您可以使用三種方式開始偵錯 WCF 服務:
您要偵錯的是呼叫服務的用戶端處理序。偵錯工具會逐步執行服務。服務不需要與用戶端應用程式位於相同的方案內。
您要偵錯的是對服務提出要求的用戶端處理序。服務必須是方案的一部分。
您使用 [附加至處理序] 附加至目前正在執行的服務。偵錯會從服務內部開始。
本主題將說明這些案例的限制。
逐步執行服務的限制
若要從您要偵錯的用戶端應用程式逐步執行服務,必須符合下列條件:
用戶端必須使用同步用戶端物件來呼叫服務。
合約作業不可以是單向的。
如果是非同步服務,則在服務內部執行程式碼期間,您就無法檢視完整的呼叫堆疊。
您必須在 app.config 或 Web.config 檔案中,加入下列程式碼中啟用偵錯功能:
<system.web> <compilation debug="true" /> <system.web>
這個程式碼只需要加入一次。您可以藉由編輯 .config 檔來加入這個程式碼,或使用 [附加至處理序] 將這個程式碼附加至服務。當您對服務使用 [附加至處理序] 時,偵錯程式碼就會自動加入 .config 檔案中。完成該項動作後,您就可以偵錯及逐步執行服務,而不需要編輯 .config 檔案。
跳離服務的限制
跳離服務並返回至用戶端的限制,與逐步執行服務中所述的限制相同。此外,您還必須將偵錯程式附加至用戶端。如果您正在偵錯用戶端並逐步執行服務,則偵錯工具會保持附加至服務的狀態。不論您是使用 [啟動偵錯] 啟動用戶端,或是使用 [附加至處理序] 附加至用戶端,都是如此。如果您使用附加至服務的方式開始進行偵錯,則偵錯工具便尚未附加至用戶端。在這種情況下,如果您必須跳離服務並返回用戶端,則必須先使用 [附加至處理序],以手動方式附加至用戶端。
自動附加至服務的限制
自動附加至服務具有下列限制:
服務必須是您要偵錯之 Visual Studio 方案的一部分。
服務必須已裝載。其可能是網站專案 (檔案系統和 HTTP)、Web 應用程式專案 (檔案系統和 HTTP),或 WCF 服務庫專案的一部分。WCF 服務庫專案可以是服務庫或工作流程服務庫。
必須從 WCF 用戶端叫用服務。
您必須在 app.config 或 Web.config 檔案中,加入下列程式碼中啟用偵錯功能:
<system.web> <compilation debug="true" /> <system.web>
自我裝載
「自我裝載的服務」(Self-Hosted Service) 是一項不會在 IIS、WCF 服務主機或 ASP.NET 程式開發伺服器內部執行的 WCF 服務。如需如何偵錯自我裝載之服務的詳細資訊,請參閱 HOW TO:偵錯自我裝載的 WCF 服務。