Creare la prima applicazione Reliable Services con stato C# di Service FabricCreate your first C# Service Fabric stateful Reliable Services application

Questo articolo illustra come distribuire la prima applicazione di Azure Service Fabric per .NET in Windows in pochi minuti.Learn how to deploy your first Azure Service Fabric application for .NET on Windows in just a few minutes. Al termine, si avrà un cluster locale in esecuzione con un'applicazione Reliable Services.When you're finished, you'll have a local cluster that's running with a Reliable Services application.

prerequisitiPrerequisites

Prima di iniziare, assicurarsi di aver configurato l'ambiente di sviluppo.Before you get started, make sure that you've set up your development environment. Questo processo include l'installazione di Service Fabric SDK e Visual Studio 2017 o 2015.This process includes installing the Service Fabric SDK and Visual Studio 2017 or 2015.

Creazione dell'applicazioneCreate the application

  1. Avviare Visual Studio come amministratore.Start Visual Studio as an administrator.

  2. Creare un progetto premendo CTRL+MAIUSC+N.Create a project by selecting Ctrl+Shift+N.

  3. Nella finestra di dialogo Nuovo progetto selezionare Cloud > Applicazione di Service Fabric.In the New Project dialog box, select Cloud > Service Fabric Application.

  4. Assegnare all'applicazione il nome MyApplication.Name the application MyApplication. Selezionare OK.Then select OK.

    Finestra di dialogo Nuovo progetto in Visual Studio

  5. Nella finestra di dialogo successiva è possibile creare qualsiasi tipo di applicazione di Service Fabric.You can create any type of Service Fabric application from the next dialog box. Per questa guida introduttiva scegliere .Net Core 2.0 > Servizio con stato.For this quickstart, choose .Net Core 2.0 > Stateful Service.

  6. Assegnare al servizio il nome MyStatefulService.Name the service MyStatefulService. Selezionare OK.Then select OK.

    Finestra di dialogo per il nuovo servizio in Visual Studio

    Visual Studio crea il progetto di applicazione e il progetto di servizio con statoVisual Studio creates the application project and the stateful service project. e quindi li visualizza in Esplora soluzioni.Then it displays them in Solution Explorer.

    Esplora soluzioni dopo la creazione di un'applicazione con un servizio con stato

    Il progetto di applicazione (MyApplication) non contiene codice.The application project (MyApplication) does not have any code. Fa invece riferimento a un set di progetti di servizio.Instead, it references a set of service projects. Include anche altri tre tipi di contenuto:It also has three other types of content:

    • Profili di pubblicazionePublish profiles
      Profili per la distribuzione in diversi ambienti.Profiles for deploying to different environments.

    • ScriptScripts
      Script di PowerShell per la distribuzione o l'aggiornamento dell'applicazione.PowerShell scripts for deploying or upgrading your application.

    • Definizione di applicazioneApplication definition
      Include il file ApplicationManifest.xml in ApplicationPackageRoot, che descrive la composizione dell'applicazione.Includes the ApplicationManifest.xml file under ApplicationPackageRoot, which describes your application's composition. I file di parametri dell'applicazione associati sono disponibili in ApplicationParameters e possono essere usati per fornire parametri specifici dell'ambiente.Associated application parameter files are under ApplicationParameters, which can be used to specify environment-specific parameters. Visual Studio seleziona un file di parametri dell'applicazione specificato nel profilo di pubblicazione associato.Visual Studio selects an application parameter file that's specified in the associated publish profile.

Per una panoramica del contenuto del progetto di servizio, vedere la Guida introduttiva a Reliable Services.For an overview of the contents of the service project, see Getting started with Reliable Services.

Distribuire ed eseguire il debug dell'applicazioneDeploy and debug the application

Ora che è disponibile un'applicazione, eseguirla, distribuirla ed effettuarne il debug seguendo questa procedura.Now that you have an application, run, deploy, and debug it by taking the following steps.

  1. In Visual Studio premere F5 per distribuire l'applicazione per il debug.In Visual Studio, select F5 to deploy the application for debugging. Fare clic su se viene visualizzata una finestra di messaggio che richiede di concedere al gruppo "ServiceFabricAllowedUsers" le autorizzazioni di lettura ed esecuzione per la directory del progetto di Visual Studio.Click Yes if presented with a message box asking to grant 'ServiceFabricAllowedUsers' group read and execute permissions to your Visual Studio project directory.

    Nota

    La prima volta che si esegue e si distribuisce l'applicazione in locale, Visual Studio crea un cluster locale per il debug.The first time you run and deploy the application locally, Visual Studio creates a local cluster for debugging. Questa operazione potrebbe richiedere tempo.This might take some time. Lo stato della creazione del cluster verrà visualizzato nella finestra di output di Visual Studio.The cluster creation status is displayed in the Visual Studio output window.

    Quando il cluster è pronto, si riceverà una notifica dall'applicazione dell'area di notifica per la gestione del cluster locale che è inclusa nell'SDK.When the cluster is ready, you get a notification from the local cluster system tray manager application that's included with the SDK.

    Nota

    Questo esercizio richiede un cluster a 5 nodi (anziché a un nodo).This exercise reqires a 5 Node (vs. 1 Node) cluster. È possibile verificare questa impostazione come indicato di seguito: avviare lo strumento Service Fabric Explorer facendo clic con il pulsante destro del mouse sull'applicazione Service Fabric Local Cluster Manager (Gestione cluster locale di Service Fabric) nell'area di notifica e quindi fare clic su Switch Cluster Mode (Cambia modalità cluster).You can verify this as follows: Start the Service Fabric Explorer tool by right-clicking the Service Fabric Local Cluster Manager system tray application and then click Switch Cluster Mode. Fare clic su 5 Node (5 nodi) se attualmente è selezionato 1 Node (1 nodo).Click 5 Node if 1 Node is currently selected.

    Notifica della barra delle applicazioni per il cluster locale

    Dopo l'avvio dell'applicazione, Visual Studio apre automaticamente il visualizzatore eventi di diagnostica, in cui viene visualizzato l'output di traccia dei servizi.After the application starts, Visual Studio automatically brings up the Diagnostics Event Viewer, where you can see trace output from your services.

    Visualizzatore eventi di diagnostica

    Nota

    Il rilevamento degli eventi nel visualizzatore eventi di diagnostica dovrebbe essere avviato automaticamente.Events should automatically start tracking in the Diagnostic Events Viewer. Se è necessario configurare manualmente il visualizzatore eventi di diagnostica, per prima cosa aprire il file ServiceEventSource.cs che si trova nel progetto MyStatefulService.If you need to manually configure the Diagnostic Events Viewer, first open the ServiceEventSource.cs file, which is located in the project MyStatefulService. Copiare il valore dell'attributo EventSource sopra la classe ServiceEventSource.Copy the value of the EventSource attribute at the top of the ServiceEventSource class. Nell'esempio seguente l'origine eventi è denominata "MyCompany-MyApplication-MyStatefulService", ma il nome potrebbe essere diverso nella situazione specifica.In the following example, the event source is called "MyCompany-MyApplication-MyStatefulService", which might be different in your situation.

    Individuazione del nome dell'origine eventi del servizio

  2. Successivamente aprire la finestra di dialogo Provider ETW,Next, open the ETW Providers dialog box. quindi selezionare l'icona a forma di ingranaggio nella scheda Eventi di diagnostica. Incollare il nome dell'origine eventi copiato nella casella di input di Provider ETW.Then select the gear icon that's located on the Diagnostics Events tab. Paste the name of the event source that you copied into the ETW Providers input box. Selezionare quindi il pulsante Applica.Then select the Apply button. Verrà automaticamente avviata la traccia degli eventi.This automatically starts tracing events.

    Impostazione del nome dell'origine eventi di diagnostica

    Nella finestra Eventi di diagnostica dovrebbero ora essere visualizzati gli eventi.You should now see events appear in the Diagnostics Events window.

    Il modello di servizio con stato mostra l'incremento del valore del contatore nel metodo RunAsync di MyStatefulService.cs.The stateful service template shows a counter value that's incrementing in the RunAsync method of MyStatefulService.cs.

  3. Espandere uno degli eventi per visualizzare altri dettagli, incluso il nodo in cui viene eseguito il codice.Expand one of the events to see more details, including the node where the code is running. In questo caso si tratta di _Node_0, ma nel computer in uso potrebbe essere diverso.In this case, it is _Node_0, though it might differ on your machine.

    Dettaglio del visualizzatore eventi di diagnostica

  4. Il cluster locale contiene cinque nodi ospitati in un singolo computer.The local cluster contains five nodes that are hosted on a single machine. In un ambiente di produzione, ogni nodo è ospitato in una macchina virtuale o un computer fisico distinto.In a production environment, each node is hosted on a distinct physical or virtual machine. Per simulare la perdita di un computer mentre si prova a eseguire il debugger di Visual Studio, disattivare uno dei nodi nel cluster locale.To simulate the loss of a machine while you're exercising the Visual Studio debugger, take down one of the nodes on the local cluster.

  5. Nella finestra Esplora soluzioni aprire MyStatefulService.cs.In the Solution Explorer window, open MyStatefulService.cs.

  6. Trovare il metodo RunAsync e quindi impostare un punto di interruzione nella prima riga del metodo.Find the RunAsync method, and then set a breakpoint on the first line of the method.

    Punto di interruzione nel metodo RunAsync del servizio con stato

  7. Avviare lo strumento Service Fabric Explorer facendo clic con il pulsante destro del mouse sull'applicazione Service Fabric Local Cluster Manager (Gestione cluster locale di Service Fabric) nell'area di notifica e quindi scegliendo Manage Local Cluster (Gestisci cluster locale).Start the Service Fabric Explorer tool by right-clicking the Service Fabric Local Cluster Manager system tray application and then selecting Manage Local Cluster.

    Avvio di Service Fabric Explorer da Local Cluster Manager (Gestione cluster locale)

    Service Fabric Explorer offre una rappresentazione visiva del cluster,Service Fabric Explorer offers a visual representation of a cluster. che include il set di applicazioni distribuito al suo interno e il set di nodi fisici da cui è costituito.It includes the set of applications that is deployed to it and the set of physical nodes that make it up.

  8. Nel riquadro sinistro espandere Cluster > Nodi e trovare il nodo in cui è in esecuzione il codice.In the left pane, expand Cluster > Nodes, and find the node where your code is running. Per simulare un riavvio del computer, selezionare Azioni > Disattiva (riavvio).Then, to simulate a machine restarting, select Actions > Deactivate (Restart).

    Arresto di un nodo in Service Fabric Explorer

    Verrà visualizzato il raggiungimento del punto di interruzione in Visual Studio mentre viene effettuato il failover del calcolo eseguito su un nodo in un altro nodo.Momentarily, you should see your breakpoint hit in Visual Studio as the computation you were doing on one node seamlessly fails over to another. Premere F5 per continuare.Press F5 to continue.

  9. Tornare quindi al visualizzatore eventi di diagnostica e osservare i messaggi.Next, return to the Diagnostic Events Viewer and observe the messages. Il contatore ha continuato ad aumentare anche se gli eventi provengono in effetti da un nodo diverso.The counter has continued incrementing, even though the events are actually coming from a different node.

    Visualizzatore eventi di diagnostica dopo il failover

Eseguire la pulizia del cluster locale (facoltativo)Clean up the local cluster (optional)

Tenere presente che il cluster locale è reale.Remember, this local cluster is real. L'arresto del debugger rimuove l'istanza dell'applicazione e annulla la registrazione del tipo di applicazione.Stopping the debugger removes your application instance and unregisters the application type. L'esecuzione del cluster, tuttavia, continua in background.However, the cluster continues to run in the background. Quando si è pronti per arrestare il cluster locale, è possibile procedere in due modi.When you're ready to stop the local cluster, there are a couple options.

Mantenere i dati applicazione e di tracciaKeep application and trace data

Arrestare il cluster facendo clic con il pulsante destro del mouse sull'applicazione dell'area di notifica Local Cluster Manager (Gestione cluster locale) e quindi scegliendo Stop Local Cluster (Arresta cluster locale).Shut down the cluster by right-clicking the Local Cluster Manager system tray application and then selecting Stop Local Cluster.

Eliminare il cluster e tutti i datiDelete the cluster and all data

Rimuovere il cluster facendo clic con il pulsante destro del mouse sull'applicazione dell'area di notifica Local Cluster Manager (Gestione cluster locale).Remove the cluster by right-clicking the Local Cluster Manager system tray application. Scegliere quindi Remove Local Cluster (Rimuovi cluster locale).Then choose Remove Local Cluster.

Se si sceglie questa opzione, Visual Studio ridistribuirà il cluster alla successiva esecuzione dell'applicazione.If you choose this option, Visual Studio redeploys the cluster the next time you run the application. Scegliere questa opzione se non si prevede di usare il cluster locale per un certo periodo o se è necessario recuperare risorse.Choose this option if you don't intend to use the local cluster for a while or if you need to reclaim resources.

Passaggi successiviNext steps

Altre informazioni su Reliable Services.Read more about Reliable Services.