共用方式為


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 安裝。

請參閱

工作

HOW TO:偵錯自我裝載的 WCF 服務

其他資源

偵錯 WCF 服務