Debug dell'applicazione di Service Fabric mediante Visual StudioDebug your Service Fabric application by using Visual Studio

Eseguire il debug di un'applicazione di Service FabricDebug a local Service Fabric application

Per risparmiare tempo e denaro, è possibile distribuire l'applicazione di Service Fabric ed eseguirne il debug in un cluster di sviluppo locale.You can save time and money by deploying and debugging your Azure Service Fabric application in a local computer development cluster. Visual Studio 2017 o Visual Studio 2015 può distribuire l'applicazione nel cluster locale e connettere automaticamente il debugger a tutte le istanze dell'applicazione.Visual Studio 2017 or Visual Studio 2015 can deploy the application to the local cluster and automatically connect the debugger to all instances of your application.

  1. Avviare un cluster di sviluppo locale seguendo la procedura descritta nell'articolo Configurazione dell'ambiente di sviluppo di Service Fabric.Start a local development cluster by following the steps in Setting up your Service Fabric development environment.
  2. Premere F5 oppure fare clic su Debug > Avvia debug.Press F5 or click Debug > Start Debugging.

    Avviare il debug di un'applicazione

  3. Impostare i punti di interruzione nel codice ed eseguire l'applicazione un'istruzione alla volta scegliendo i comandi dal menu Debug .Set breakpoints in your code and step through the application by clicking commands in the Debug menu.

    Nota

    Visual Studio si connette a tutte le istanze dell'applicazione. Mentre il codice viene eseguito un'istruzione alla volta, i punti di interruzione possono essere raggiunti da più processi, dando luogo a sessioni simultanee. Provare a disabilitare i punti di interruzione dopo che sono stati raggiunti rendendoli condizionali in base all'ID del thread, oppure usando gli eventi di diagnostica.

  4. La finestra degli eventi di diagnostica si aprirà automaticamente per visualizzare gli eventi diagnostici in tempo reale.The Diagnostic Events window will automatically open so you can view diagnostic events in real time.

    Visualizzare gli eventi diagnostici in tempo reale

  5. È possibile aprire la finestra degli eventi di diagnostica anche in Cloud Explorer.You can also open the Diagnostic Events window in Cloud Explorer. In Service Fabric fare clic con il pulsante destro del mouse e scegliere Visualizza tracce streaming.Under Service Fabric, right-click any node and choose View Streaming Traces.

    Aprire la finestra degli eventi di diagnostica

    Se si vuole filtrare le tracce in un'applicazione o in un servizio, è sufficiente abilitare le tracce di streaming in tale applicazione o servizio.If you want to filter your traces to a specific service or application, simply enable streaming traces on that specific service or application.

  6. Gli eventi diagnostici possono essere visualizzati nel file ServiceEventSource.cs generato automaticamente e vengono chiamati dal codice dell'applicazione.The diagnostic events can be seen in the automatically generated ServiceEventSource.cs file and are called from application code.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. Nella finestra deglieventi di diagnostica è possibile filtrare, sospendere ed esaminare eventi in tempo reale.The Diagnostic Events window supports filtering, pausing, and inspecting events in real time. Il filtro è una semplice ricerca di stringhe del messaggio dell'evento, incluso il relativo contenuto.The filter is a simple string search of the event message, including its contents.

    Filtrare, sospendere e riprendere o esaminare eventi in tempo reale

  8. Il debug dei servizi è come il debug di qualsiasi altra applicazione.Debugging services is like debugging any other application. In genere i punti di interruzione vengono impostati tramite Visual Studio per semplificare il debug.You will normally set Breakpoints through Visual Studio for easy debugging. Anche se le raccolte Reliable Collections vengono replicate in più nodi, implementano comunque IEnumerable.Even though Reliable Collections replicate across multiple nodes, they still implement IEnumerable. Ciò significa che è possibile utilizzare la visualizzazione dei risultati in Visual Studio durante il debug per vedere cosa è stato memorizzato all'interno.This means that you can use the Results View in Visual Studio while debugging to see what you've stored inside. È sufficiente impostare un punto di interruzione in qualsiasi posizione all'interno del codice.Simply set a breakpoint anywhere in your code.

    Avviare il debug di un'applicazione

Eseguire il debug di un'applicazione remota di Service FabricDebug a remote Service Fabric application

Se le applicazioni di Service Fabric sono in esecuzione in un cluster di Service Fabric in Azure, è possibile eseguirne il debug remoto direttamente da Visual Studio.If your Service Fabric applications are running on a Service Fabric cluster in Azure, you are able to remotely debug these, directly from Visual Studio.

Nota

La funzionalità richiede Service Fabric SDK 2.0 e Azure SDK per .NET 2.9.

Avviso

Il debug remoto è progettato per scenari di sviluppo e test e non deve essere usato in ambienti di produzione a causa dell'impatto sulle applicazioni in esecuzione.

  1. Passare al cluster in Cloud Explorer, fare clic con il pulsante destro del mouse e scegliere Abilita debugNavigate to your cluster in Cloud Explorer, right-click and choose Enable Debugging

    Abilitare il debug remoto

    Verrà avviato il processo di abilitazione dell'estensione di debug remoto nei nodi del cluster e delle configurazioni di rete necessarie.This will kick off the process of enabling the remote debugging extension on your cluster nodes, as well as required network configurations.

  2. Fare clic con il pulsante destro del mouse sul nodo del cluster in Cloud Explorer e scegliere Associa debuggerRight-click the cluster node in Cloud Explorer, and choose Attach Debugger

    Collega debugger

  3. Nella finestra di dialogo Associa a processo scegliere il processo di cui si vuole eseguire il debug e fare clic su CollegaIn the Attach to process dialog, choose the process you want to debug, and click Attach

    Scegliere il processo

    Il nome del processo a cui connettersi corrisponde al nome dell'assembly del progetto del servizio.The name of the process you want to attach to, equals the name of your service project assembly name.

    Il debugger si connetterà a tutti i nodi che eseguono il processo.The debugger will attach to all nodes running the process.

    • Se si esegue il debug di un servizio senza stato, tutte le istanze del servizio in tutti i nodi fanno parte della sessione di debug.In the case where you are debugging a stateless service, all instances of the service on all nodes are part of the debug session.
    • Se si esegue il debug di un servizio con stato, solo la replica primaria di qualsiasi partizione sarà attiva e quindi rilevata dal debugger.If you are debugging a stateful service, only the primary replica of any partition will be active and therefore caught by the debugger. Se la replica primaria viene spostata durante la sessione di debug, l'elaborazione di quella replica farà ancora parte della sessione di debug.If the primary replica moves during the debug session, the processing of that replica will still be part of the debug session.
    • Per rilevare solo le partizioni o istanze pertinenti di un determinato servizio, è possibile usare punti di interruzione condizionali per interrompere solo una specifica istanza o partizione.In order to only catch relevant partitions or instances of a given service, you can use conditional breakpoints to only break a specific partition or instance.

      Punto di interruzione condizionale

      Nota

      Attualmente non è supportato il debug di un cluster di Service Fabric con più istanze dello stesso nome di eseguibile del servizio.

  4. Al termine del debug dell'applicazione è possibile disabilitare l'estensione di debug remoto facendo clic con il pulsante destro del mouse sul cluster in Cloud Explorer e scegliendo Disabilita debugOnce you finish debugging your application, you can disable the remote debugging extension by right-clicking the cluster in Cloud Explorer and choose Disable Debugging

    Disabilitare il debug remoto

Streaming delle tracce da un nodo del cluster remotoStreaming traces from a remote cluster node

Si può anche eseguire lo streaming delle tracce direttamente da un nodo del cluster remoto a Visual Studio.You are also able to stream traces directly from a remote cluster node to Visual Studio. Questa funzionalità consente di eseguire lo streaming degli eventi di traccia ETW, generati su un nodo del cluster di Service Fabric.This feature allows you to stream ETW trace events, produced on a Service Fabric cluster node.

Nota

La funzionalità richiede Service Fabric SDK 2.0 e Azure SDK per .NET 2.9. Questa funzionalità supporta solo i cluster in esecuzione in Azure.

Avviso

Lo streaming delle tracce è progettato per scenari di sviluppo e test e non deve essere usato in ambienti di produzione a causa dell'impatto sulle applicazioni in esecuzione. In uno scenario di produzione è consigliabile basarsi sugli eventi di inoltro usando Diagnostica di Azure.

  1. Passare al cluster in Cloud Explorer, fare clic con il pulsante destro del mouse e scegliere Abilita tracce streamingNavigate to your cluster in Cloud Explorer, right-click and choose Enable Streaming Traces

    Abilitare le tracce di streaming remote

    Verrà avviato il processo di abilitazione dell'estensione di streaming delle tracce nei nodi del cluster e delle configurazioni di rete necessarie.This will kick off the process of enabling the streaming traces extension on your cluster nodes, as well as required network configurations.

  2. Espandere l'elemento Nodi in Cloud Explorer, fare clic con il pulsante destro del mouse sul nodo da cui trasmettere le tracce e scegliere Visualizza tracce streamingExpand the Nodes element in Cloud Explorer, right-click the node you want to stream traces from and choose View Streaming Traces

    Visualizzare le tracce di streaming remote

    Ripetere il passaggio 2 per tutti i nodi da cui visualizzare le tracce.Repeat step 2 for as many nodes as you want to see traces from. Il flusso di ogni nodo verrà visualizzato in una finestra dedicata.Each nodes stream will show up in a dedicated window.

    A questo punto è possibile vedere le tracce emesse da Service Fabrice e dai propri servizi.You are now able to see the traces emitted by Service Fabric, and your services. Per filtrare gli eventi in modo da visualizzare solo una specifica applicazione, è sufficiente immettere il nome dell'applicazione nel filtro.If you want to filter the events to only show a specific application, simply type in the name of the application in the filter.

    Visualizzazione delle tracce di streaming

  3. Al termine dello streaming delle tracce dal cluster, è possibile disabilitare le tracce di streaming remote facendo clic con il pulsante destro del mouse sul cluster in Cloud Explorer e scegliere Disabilita tracce streamingOnce you are done streaming traces from your cluster, you can disable remote streaming traces, by right-clicking the cluster in Cloud Explorer and choose Disable Streaming Traces

    Disabilitare le tracce di streaming remote

Passaggi successiviNext steps