WCF 偵錯的限制
您可以使用三種方式開始偵錯 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 服務。
自我裝載
若要啟用 ASP.NET 3.0 或 3.5 應用程式的偵錯功能,必須先安裝 ASP.NET 3.0 或 3.5,然後安裝 Visual Studio 2010。 如果先安裝 Visual Studio 2010 再安裝 ASP.NET 3.0 或 3.5,當您嘗試偵錯 ASP.NET 3.0 或 3.5 應用程式時,就會發生錯誤。 錯誤訊息是「無法自動逐步執行至伺服器」。若要修正這個問題,請使用 Windows [控制台] 的 [程式和功能] 修復 Visual Studio 2010 安裝。