Procedura: Eseguire il debug di contenitori Windows in Azure Service Fabric usando Visual Studio 2019

Con Visual Studio 2019 è possibile eseguire il debug di applicazioni .NET in contenitori come servizi di Service Fabric. Questo articolo illustra come configurare l'ambiente ed eseguire il debug di un'applicazione .NET in un contenitore in esecuzione in un cluster di Service Fabric locale.

Prerequisiti

Configurare l'ambiente di sviluppo per l'esecuzione del debug dei contenitori

  1. Assicurarsi che il servizio Docker per Windows sia in esecuzione prima di procedere con il passaggio successivo.

  2. Per supportare la risoluzione DNS tra contenitori, è necessario configurare il cluster di sviluppo locale usando il nome del computer. Questa procedura è necessaria anche per indirizzare i servizi tramite il proxy inverso.

    1. Aprire PowerShell come amministratore

    2. Passare alla cartella di installazione del cluster SDK, in genere C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.

    3. Esecuzione dello script DevClusterSetup.ps1

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

      Nota

      È possibile usare -CreateOneNodeCluster per configurare un cluster con un solo nodo. Per impostazione predefinita, verrà creato un cluster locale con cinque nodi.

      Per altre informazioni sul servizio DNS in Service Fabric, vedere Servizio DNS in Azure Service Fabric. Per altre informazioni sull'uso del proxy inverso di Service Fabric per i servizi in esecuzione in un contenitore, vedere Reverse proxy special handling for services running in containers (Gestione speciale del proxy inverso per i servizi in esecuzione nei contenitori).

Limitazioni note durante il debug dei contenitori in Service Fabric

Di seguito sono elencate le limitazioni note per il debug dei contenitori in Service Fabric e le possibili risoluzioni:

  • L'uso di localhost per ClusterFQDNorIP non supporta la risoluzione DNS nei contenitori.
    • Soluzione: configurare il cluster locale usando il nome del computer (vedere sopra)
  • L'esecuzione di Windows10 in una macchina virtuale non restituirà la risposta DNS al contenitore.
  • La risoluzione dei servizi nella stessa applicazione tramite il nome del servizio DNS non funziona in Windows10, se l'applicazione è stata distribuita con Docker Compose
  • Se si usa l'indirizzo IP per ClusterFQDNorIP, la modifica dell'indirizzo IP primario nell'host interromperà la funzionalità DNS.
    • Soluzione: ricreare il cluster usando il nuovo indirizzo IP primario nell'host o usare il nome del computer. Questa interruzione è per impostazione predefinita.
  • Se il nome di dominio completo con cui è stato creato il cluster non è risolvibile nella rete, dns avrà esito negativo.
    • Soluzione: ricreare il cluster locale usando l'indirizzo IP primario dell'host. Questo errore è previsto dalla progettazione.
  • Durante il debug di un contenitore, i log di Docker saranno disponibili solo nella finestra di output di Visual Studio, non tramite le API di Service Fabric, incluso Service Fabric Explorer

Eseguire il debug di un'applicazione .NET in esecuzione in contenitori Docker in Service Fabric

  1. Eseguire Visual Studio come amministratore.

  2. Aprire un'applicazione .NET esistente o crearne una nuova.

  3. Fare clic con il pulsante destro del mouse sul progetto e scegliere Aggiungi -> Supporto dell'agente di orchestrazione contenitori -> Service Fabric

  4. Premere F5 per avviare il debug dell'applicazione.

    Visual Studio supporta i tipi di progetto console e ASP.NET per .NET e .NET Core.

Passaggi successivi

Per altre informazioni sulle funzionalità di Service Fabric e dei contenitori, vedere Panoramica dei contenitori di Service Fabric.