Monitoraggio dell'utilizzo e delle prestazioni nelle applicazioni desktop di WindowsMonitoring usage and performance in Windows Desktop apps

Application Insights di Azure e HockeyApp consentono di monitorare l'utilizzo e le prestazioni dell'applicazione distribuita.Azure Application Insights and HockeyApp let you monitor your deployed application for usage and performance.

Importante

È consigliabile usare HockeyApp per distribuire e monitorare applicazioni desktop e app per dispositivi.We recommend HockeyApp to distribute and monitor desktop and device apps. Con HockeyApp è possibile gestire la distribuzione, i test live e i commenti degli utenti, oltre a monitorare i report di utilizzo e di arresto anomalo.With HockeyApp, you can manage distribution, live testing, and user feedback, as well as monitor usage and crash reports. È anche possibile esportare ed eseguire una query sui dati di telemetria con Analisi.You can also export and query your telemetry with Analytics.

Sebbene i dati di telemetria possano essere inviati ad Application Insights da un'applicazione desktop, sono utili principalmente a scopo di debug e sperimentazione.Although telemetry can be sent to Application Insights from a desktop application, this is chiefly useful for debugging and experimental purposes.

Per inviare dati di telemetria ad Application Insights da un'applicazione WindowsTo send telemetry to Application Insights from a Windows application

  1. Nel portale di Azure creare una risorsa di Application Insights.In the Azure portal, create an Application Insights resource. Scegliere l'app ASP.NET per il tipo di applicazione.For application type, choose ASP.NET app.
  2. Eseguire una copia della chiave di strumentazione.Take a copy of the Instrumentation Key. Trovare la chiave nell'elenco a discesa Informazioni di base della nuova risorsa appena creata.Find the key in the Essentials drop-down of the new resource you just created.
  3. In Visual Studio, modificare i pacchetti NuGet del progetto dell'app e aggiungere Microsoft.ApplicationInsights.WindowsServer.In Visual Studio, edit the NuGet packages of your app project, and add Microsoft.ApplicationInsights.WindowsServer. In alternativa, se si vuole ottenere solo l'API, senza i moduli di raccolta dei dati di telemetria standard, scegliere Microsoft.ApplicationInsights.(Or choose Microsoft.ApplicationInsights if you just want the bare API, without the standard telemetry collection modules.)
  4. Impostare la chiave di strumentazione nel codice:Set the instrumentation key either in your code:

    TelemetryConfiguration.Active.InstrumentationKey = " nome della chiave ";TelemetryConfiguration.Active.InstrumentationKey = " your key ";

    o in ApplicationInsights.config, se è installato uno dei pacchetti di telemetria standard:or in ApplicationInsights.config (if you installed one of the standard telemetry packages):

    <InstrumentationKey>chiave</InstrumentationKey><InstrumentationKey>your key</InstrumentationKey>

    Se si utilizza Applicationinsights.config, assicurarsi che le proprietà in Esplora soluzione siano impostate su Build Action = Content, Copy to Output Directory = Copy.If you use ApplicationInsights.config, make sure its properties in Solution Explorer are set to Build Action = Content, Copy to Output Directory = Copy.

  5. Usare l'API per inviare dati di telemetria.Use the API to send telemetry.
  6. Eseguire l'app e visualizzare i dati di telemetria nella risorsa creata nel portale di Azure.Run your app, and see the telemetry in the resource you created in the Azure Portal.

Codice di esempioExample code


    public partial class Form1 : Form
    {
        private TelemetryClient tc = new TelemetryClient();
        ...
        private void Form1_Load(object sender, EventArgs e)
        {
            // Alternative to setting ikey in config file:
            tc.InstrumentationKey = "key copied from portal";

            // Set session data:
            tc.Context.User.Id = Environment.UserName;
            tc.Context.Session.Id = Guid.NewGuid().ToString();
            tc.Context.Device.OperatingSystem = Environment.OSVersion.ToString();

            // Log a page view:
            tc.TrackPageView("Form1");
            ...
        }

        protected override void OnClosing(CancelEventArgs e)
        {
            stop = true;
            if (tc != null)
            {
                tc.Flush(); // only for desktop apps

                // Allow time for flushing:
                System.Threading.Thread.Sleep(1000);
            }
            base.OnClosing(e);
        }

Passaggi successiviNext steps