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 服務。 如需如何對自我裝載的服務進行偵錯的詳細資訊,請參閱 如何:偵錯自我裝載的 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 安裝。