共用方式為


如何:使用 Visual Studio 2019 對 Azure Service Fabric 中的 Windows 容器進行偵錯

使用 Visual Studio 2019 時,您可以在作為 Service Fabric 服務的容器中,對 .NET 應用程式進行偵錯。 本文說明如何設定環境,然後在執行於本機 Service Fabric 叢集的容器中,對 .NET 應用程式進行偵錯。

必要條件

設定開發人員環境以對容器進行偵錯

  1. 先確定適用於 Windows 服務的 Docker 有在執行,再繼續進行下一個步驟。

  2. 為了在容器之間支援 DNS 解析,您必須使用機器名稱來設定本機開發叢集。 如果您想要透過反向 Proxy 處理服務,則也需要執行這些步驟。

    1. 以系統管理員身分開啟 PowerShell

    2. 瀏覽至 SDK 叢集的安裝程式資料夾,通常是 C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup

    3. 執行指令碼DevClusterSetup.ps1

        C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
      

      注意

      您可以使用 -CreateOneNodeCluster 來設定單節點叢集。 依預設會建立五節點的本機叢集。

      若要深入了解 Service Fabric 中的 DNS 服務,請參閱 Azure Service Fabric 中的 DNS 服務。 若要深入了解如何從在容器中執行的服務使用 Service Fabric 反向 Proxy,請參閱針對在容器中執行的服務進行反向 Proxy 特殊處理

在對 Service Fabric 中的容器進行偵錯時的已知限制

以下是對 Service Fabric 中的容器進行偵錯時的已知限制和可能的解決方式清單:

  • 對 ClusterFQDNorIP 使用 localhost 不會在容器中支援 DNS 解析。
    • 解決方式:使用機器名稱設定本機叢集 (請參閱上文)
  • 在虛擬機器中執行 Windows10 不會讓 DNS 回覆返回容器。
  • 如果使用了 Docker Compose 來部署應用程式,則無法在 Windows10 上使用 DNS 服務名稱來解析相同應用程式中的服務
  • 如果對 ClusterFQDNorIP 使用 IP-address,則在主機上變更主要 IP 會破壞 DNS 功能。
    • 解決方式:使用主機上的新主要 IP 或使用機器名稱,來重新建立叢集。 這項破壞是故意設計的。
  • 如果無法在網路上解析用來建立叢集的 FQDN,則 DNS 會失敗。
    • 解決方式:使用主機的主要 IP 來重新建立本機叢集。 這項失敗是故意設計的。
  • 在對容器進行偵錯時,Docker 記錄只能透過 Visual Studio 輸出視窗取得,而無法透過 Service Fabric API (包括 Service Fabric Explorer) 取得

針對在 Service Fabric 上的 Docker 容器中執行的 .NET 應用程式進行偵錯

  1. 以系統管理員身分執行 Visual Studio。

  2. 開啟現有的 .NET 應用程式,或新建一個。

  3. 以滑鼠右鍵按一下專案,然後選取 [新增] -> [容器協調器支援] -> [Service Fabric]

  4. F5 開始對應用程式進行偵錯。

    Visual Studio 支援適用於 .NET 和 .NET Core 的主控台與 ASP.NET 專案類型。

下一步

若要深入了解 Service Fabric 和容器的功能,請跟隨此連結,請參閱 Service Fabric 容器概觀