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 Service Fabric per .NET in Windows in pochi minuti.Learn how to deploy your first 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 running with a reliable service application.

PrerequisitiPrerequisites

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

Creazione dell'applicazioneCreate the application

Avviare Visual Studio come amministratore.Launch Visual Studio as an administrator.

Creare un progetto con CTRL+SHIFT+N.Create a project with CTRL+SHIFT+N

Nella finestra di dialogo Nuovo progetto scegliere Cloud > Applicazione di Service Fabric.In the New Project dialog, choose Cloud > Service Fabric Application.

Assegnare all'applicazione il nome MyApplication e fare clic su OK.Name the application MyApplication and press OK.

Finestra di dialogo Nuovo progetto in Visual Studio

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. Per questa guida introduttiva scegliere Servizio con stato.For this Quickstart, choose Stateful Service.

Assegnare al servizio il nome MyStatefulService e fare clic su OK.Name the service MyStatefulService and press OK.

Finestra di dialogo Nuovo servizio in Visual Studio

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

Esplora soluzioni dopo la creazione dell'applicazione con servizio con stato

Il progetto di applicazione (MyApplication) non contiene direttamente codice,The application project (MyApplication) does not contain any code directly. ma fa riferimento a un set di progetti di servizio.Instead, it references a set of service projects. Include inoltre altri tre tipi di contenuto:In addition, it contains 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 distribuire o aggiornare l'applicazione.PowerShell script for deploying/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 durante la distribuzione in un ambiente specifico.Visual Studio selects an application parameter file that's specified in the associated publish profile during deployment to a specific environment.

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

A questo punto, eseguire l'applicazione creata.Now that you have an application, run it.

In Visual Studio premere F5 per distribuire l'applicazione per il debug.In Visual Studio, press F5 to deploy the application for debugging.

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 may 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 di gestione della barra delle applicazioni inclusa nell'SDK.When the cluster is ready, you get a notification from the local cluster system tray manager application included with the SDK.

Notifica della barra delle applicazioni per il cluster locale

All'avvio dell'applicazione, Visual Studio apre automaticamente il visualizzatore eventi di diagnostica, in cui viene visualizzato l'output di traccia dei servizi.Once 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

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

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 locale potrebbe essere diverso.In this case, it is _Node_0, though it may differ on your machine.

Dettaglio del visualizzatore eventi di diagnostica

Il cluster locale include cinque nodi ospitati in un singolo computer.The local cluster contains five nodes 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 durante l'esecuzione del debugger di Visual Studio, portare offline uno dei nodi del cluster locale.To simulate the loss of a machine while exercising the Visual Studio debugger at the same time, let's take down one of the nodes on the local cluster.

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

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

Punto di interruzione nel metodo RunAsync del servizio con stato

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

Avvio di Service Fabric Explorer da Local Cluster Manager

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 distribuite al suo interno e il set di nodi fisici da cui è costituito.It includes the set of applications deployed to it and the set of physical nodes that make it up.

Nel riquadro sinistro espandere Cluster > Nodi e individuare il nodo in cui è in esecuzione il codice.In the left pane, expand Cluster > Nodes and find the node where your code is running.

Fare clic su Azioni > Disattiva (riavvio) per simulare il riavvio di una macchina virtuale.Click Actions > Deactivate (Restart) to simulate a machine restarting.

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.

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

Pulizia del cluster locale (facoltativo)Cleaning 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 on the Local Cluster Manager system tray application and then choose 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) e quindi scegliendo Remove Local Cluster (Rimuovi cluster locale).Remove the cluster by right-clicking on the Local Cluster Manager system tray application and 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 will redeploy the cluster the next time your 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 some time or if you need to reclaim resources.

Passaggi successiviNext steps

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