Diagnosticare le notifiche non recapitate in Hub di notificaDiagnose dropped notifications in Notification Hubs

Una delle domande più comuni dei clienti di Hub di notifica di Azure è come risolvere i problemi quando le notifiche inviate da un'applicazione non vengono visualizzate nei dispositivi client.One of the most common questions from Azure Notification Hubs customers is how to troubleshoot when notifications that are sent from an application don't appear on client devices. I clienti desiderano sapere dove si è verificato l'errore e perché le notifiche non sono state recapitate e come risolvere il problema.They want to know where and why notifications were dropped, and how to fix the issue. Questo articolo illustra i motivi per cui le notifiche possono essere eliminate o non essere ricevute dai dispositivi.This article identifies why notifications might get dropped or not be received by devices. Informazioni su come analizzare e determinare la causa principale.Learn how to analyze and determine the root cause.

È prima di tutto fondamentale capire come viene eseguito il push delle notifiche a un dispositivo da Hub di notifica.It's critical to first understand how the Notification Hubs service pushes notifications to a device.

Architettura di Hub di notifica

In un flusso tipico di invio delle notifiche, il messaggio viene inviato dal back-end dell'applicazione ad Hub di notifica.In a typical send notification flow, the message is sent from the application back end to Notification Hubs. Hub di notifica esegue alcune operazioni di elaborazione per tutte le registrazioni.Notification Hubs does some processing on all the registrations. L'elaborazione prende in considerazione i tag e le espressioni tag configurati per determinare le "destinazioni".The processing takes into account the configured tags and tag expressions to determine "targets." Le destinazioni sono tutte le registrazioni che devono ricevere la notifica push.Targets are all the registrations that need to receive the push notification. Queste registrazioni possono coprire alcune o tutte le piattaforme supportate: iOS, Google, Windows, Windows Phone, Kindle e Baidu per Android in Cina.These registrations can span any or all our supported platforms: iOS, Google, Windows, Windows Phone, Kindle, and Baidu for China Android.

Con le destinazioni stabilite, il servizio Hub di notifica esegue il push delle notifiche al servizio di notifica push per la piattaforma del dispositivo.With the targets established, the Notification Hubs service pushes notifications to the push notification service for the device platform. Alcuni esempi sono il servizio Apple Push Notification (APN) per Apple e Firebase Cloud Messaging (FCM) per Google.Examples include the Apple Push Notification service (APNs) for Apple and Firebase Cloud Messaging (FCM) for Google. Hub di notifica esegue il push delle notifiche suddivise in più batch di registrazioni.Notification Hubs pushes notifications split across multiple batches of registrations. Hub di notifica esegue l'autenticazione nel servizio di notifica push corrispondente in base alle credenziali impostate nel portale di Azure, in Configure Notification Hub (Configura Hub di notifica).Notification Hubs authenticates with the respective push notification service based on the credentials that you set in the Azure portal, under Configure Notification Hub. Il servizio di notifica push inoltra quindi le notifiche ai dispositivi client corrispondenti.The push notification service then forwards the notifications to the respective client devices.

L'ultima parte del recapito delle notifiche avviene tra il servizio di notifica push della piattaforma e il dispositivo.The final leg of notification delivery takes place between the platform push notification service and the device. Uno qualsiasi dei quattro componenti principali del processo di notifica push (client, back-end dell'applicazione, Hub di notifica e servizio di notifica push della piattaforma) potrebbe causare l'eliminazione delle notifiche.Any of the four major components in the push notification process (client, application back end, Notification Hubs, and the platform push notification service) might cause notifications to be dropped. Per altre informazioni sull'architettura di Hub di notifica, vedere Panoramica dell'Hub di notifica.For more information about the Notification Hubs architecture, see Notification Hubs overview.

Il mancato recapito delle notifiche potrebbe verificarsi durante la fase iniziale di test/staging.Failure to deliver notifications might occur during the initial test/staging phase. Le notifiche non recapitate in questa fase potrebbero indicare un problema di configurazione.Dropped notifications at this stage might indicate a configuration issue. Se i problemi di recapito delle notifiche si verificano nell'ambiente di produzione, potrebbero essere eliminate alcune o tutte le notifiche.If failure to deliver notifications occurs in production, either some or all of the notifications might be dropped. In questo caso, si tratta di un problema più articolato a livello di applicazione o della messaggistica.In this case, a deeper application or messaging pattern issue is indicated.

Nella sezione successiva vengono esaminati gli scenari in cui potrebbe verificarsi il mancato recapito notifiche, dai più comuni a quelli più rari.The next section looks at scenarios in which notifications might be dropped, ranging from common to more rare.

Configurazione errata di Hub di notificaNotification Hubs misconfiguration

Per inviare notifiche al servizio di notifica push corrispondente, il servizio Hub di notifica deve eseguire l'autenticazione nel contesto dell'applicazione dello sviluppatore.To successfully send notifications to the respective push notification service, the Notification Hubs service needs to authenticate itself in the context of the developer's application. A questo scopo, lo sviluppatore crea un account sviluppatore con la piattaforma corrispondente (Google, Apple, Windows e così via).For this to occur, the developer creates a developer account with the respective platform (Google, Apple, Windows, and so on). Lo sviluppatore registra quindi l'applicazione per la piattaforma da cui ottiene le credenziali.Then, the developer registers their application with the platform where they get credentials.

È necessario aggiungere le credenziali della piattaforma nel portale di Azure.You must add platform credentials to the Azure portal. Se il dispositivo non riceve alcuna notifica, è prima di tutto necessario assicurarsi che in Hub di notifica siano configurate le credenziali corrette.If no notifications are reaching the device, the first step should be to ensure that the correct credentials are configured in Notification Hubs. Le credenziali devono corrispondere all'applicazione creata con un account sviluppatore specifico della piattaforma.The credentials must match the application that is created under a platform-specific developer account.

Per istruzioni dettagliate per eseguire questo processo, vedere Introduzione ad Hub di notifica di Azure.For step-by-step instructions to complete this process, see Get started with Azure Notification Hubs.

Ecco alcuni errori di configurazione comuni:Here are some common misconfigurations to check for:

  • GeneraleGeneral

    • Assicurarsi che il nome dell'hub di notifica (privo di errori di digitazione) sia uguale in ognuna di queste posizioni:Ensure that your notification hub name (without typos) is the same in each of these locations:

      • Posizione di registrazione dal client.Where you register from the client.
      • Posizione di invio delle notifiche dal back-end.Where you send notifications from the back end.
      • Posizione di configurazione delle credenziali del servizio di notifica push.Where you configured the push notification service credentials.
    • Assicurarsi di usare le stringhe di configurazione della firma di accesso condiviso corrette nel client e nel back-end dell'applicazione.Ensure that you use the correct shared access signature configuration strings on the client and on the application back end. In linea generale, è necessario usare DefaultListenSharedAccessSignature nel client e DefaultFullSharedAccessSignature nel back-end dell'applicazione (vengono concesse le autorizzazioni per l'invio di notifiche ad Hub di notifica).Generally, you must use DefaultListenSharedAccessSignature on the client and DefaultFullSharedAccessSignature on the application back end (grants permissions to send notifications to Notification Hubs).

  • Configurazione del servizio APNAPNs configuration

    È necessario gestire due hub diversi, uno per la produzione e un altro per i test.You must maintain two different hubs: one hub for production, and another hub for testing. Ciò significa che è necessario caricare il certificato da usare nell'ambiente sandbox in un hub separato dal certificato e dall'hub che verranno usati in produzione.This means that you must upload the certificate that you use in a sandbox environment to a separate hub than the certificate and hub that you are going to use in production. Non provare a caricare tipi diversi di certificati nello stesso hub.Don't try to upload different types of certificates to the same hub. Ciò potrebbe causare errori di notifica.This might cause notification failures.

    Se si caricano inavvertitamente tipi diversi di certificati nello stesso hub, è consigliabile eliminare l'hub e ricominciare con un nuovo hub.If you inadvertently upload different types of certificates to the same hub, we recommend that you delete the hub and start fresh with a new hub. Se per qualche motivo non è possibile eliminare l'hub, sarà necessario quanto meno eliminare tutte le registrazioni esistenti dall'hub.If for some reason you can't delete the hub, at a minimum, you must delete all the existing registrations from the hub.

  • Configurazione di FCMFCM configuration

    1. Verificare che la chiave server ottenuta da Firebase corrisponda alla chiave server registrata nel portale di Azure.Ensure that the server key that you obtained from Firebase matches the server key that you registered in the Azure portal.

      Chiave server Firebase

    2. Assicurarsi di aver configurato l'ID progetto nel client.Ensure that you have configured Project ID on the client. È possibile ottenere il valore per ID progetto dal dashboard Firebase.You can obtain the value for Project ID from the Firebase dashboard.

      ID progetto Firebase

Problemi relativi all'applicazioneApplication issues

  • Tag ed espressioni tagTags and tag expressions

    Se si usano tag o espressioni tag per segmentare i destinatari, è possibile che al momento dell'invio della notifica non venga trovato alcun destinatario in base ai tag o alle espressioni tag specificati nella chiamata di invio.If you use tags or tag expressions to segment your audience, it's possible that when you send the notification, no target is found based on the tags or tag expressions that you specify in your send call.

    Esaminare le registrazioni per verificare che siano presenti tag corrispondenti quando si invia una notifica.Review your registrations to ensure that there are matching tags when you send a notification. Verificare quindi la ricezione delle notifiche solo dai client con queste registrazioni.Then, verify the notification receipt only from the clients that have those registrations.

    Ad esempio, se tutte le registrazioni per Hub di notifica sono state eseguite con il tag "Politica" e si invia una notifica con il tag "Sport", la notifica non viene inviata ad alcun dispositivo.As an example, if all your registrations with Notification Hubs were made by using the tag "Politics" and you send a notification with the tag "Sports," the notification isn't sent to any device. Un caso complesso con espressioni tag è quello in cui la registrazione è stata eseguita solo con "Tag A" OPPURE "Tag B", ma durante l'invio delle notifiche si usa "Tag A & & Tag B" come destinazione.A complex case might involve tag expressions in which you registered by using "Tag A" OR "Tag B," but while sending notifications, you target "Tag A && Tag B." Nella sezione dei suggerimenti per l'autodiagnosi più avanti in questo articolo viene illustrato come controllare le registrazioni e i relativi tag.In the self-diagnosis tips section later in the article, we show you how to review your registrations and their tags.

  • Problemi relativi ai modelliTemplate issues

    Se si usano modelli, assicurarsi di seguire le indicazioni riportate in Modelli.If you use templates, ensure that you follow the guidelines described in Templates.

  • Registrazioni non valideInvalid registrations

    Se l'hub di notifica è stato configurato correttamente e se gli eventuali tag o espressioni tag sono stati usati correttamente, vengono trovate destinazioni valide.If the notification hub was configured correctly, and if any tags or tag expressions were used correctly, valid targets are found. Le notifiche devono essere inviate a queste destinazioni.Notifications should be sent to these targets. Il servizio Hub di notifica attiva quindi vari batch di elaborazione in parallelo.The Notification Hubs service then fires off several processing batches in parallel. Ogni batch invia messaggi a un set di registrazioni.Each batch sends messages to a set of registrations.

    Nota

    Dato che l'elaborazione viene eseguita in parallelo, l'ordine di recapito delle notifiche non è garantito.Because processing is performed in parallel, the order in which the notifications are delivered is not guaranteed.

    Hub di notifica è ottimizzato per un modello di recapito "at-most-once" per i messaggi,Notification Hubs is optimized for an "at-most once" message delivery model. che comporta un tentativo di deduplicazione per fare in modo che nessuna notifica venga recapitata più di una volta a un dispositivo.We attempt deduplication, so that no notifications are delivered more than once to a device. A questo scopo, prima dell'invio effettivo del messaggio al servizio di notifica push vengono esaminate le registrazioni per garantire che venga inviato un solo messaggio per ogni ID di dispositivo.To ensure this, we check registrations and ensure that only one message is sent per device identifier before the message is sent to the push notification service.

    Dato che ogni batch viene inviato al servizio di notifica push, che a sua volta accetta e convalida le registrazioni, è possibile che il servizio di notifica push rilevi un errore per una o più registrazioni in un batch.As each batch is sent to the push notification service, which in turn is accepting and validating the registrations, it's possible that the push notification service will detect an error with one or more of the registrations in a batch. In questo caso, il servizio di notifica push restituisce un errore ad Hub di notifica e il processo viene arrestato.In this case, the push notification service returns an error to Notification Hubs, and the process stops. Il servizio di notifica push elimina completamente tale batch.The push notification service drops that batch completely. Questo vale soprattutto per il servizio APN che usa un protocollo di flusso TCP.This is especially true with APNS, which uses a TCP stream protocol.

    Il sistema è ottimizzato per il recapito at-most-once,We are optimized for at-most once delivery. ma in questo caso, la registrazione che causa l'errore viene rimossa dal database.But in this case, the faulting registration is removed from the database. Viene quindi eseguito un ulteriore tentativo di recapito per il resto dei dispositivi nel batch.Then, we retry notification delivery for the rest of the devices in that batch.

    Per ottenere ulteriori informazioni sul tentativo di recapito non riuscito per una registrazione, è possibile usare le API REST di Hub di notifica: Per Message Telemetry: Get Notification Message Telemetry (Dati di telemetria per messaggio: ottenere i dati di telemetria del messaggio di notifica) e PNS feedback (Feedback PNS).To get more error information about the failed delivery attempt against a registration, you can use the Notification Hubs REST APIs Per Message Telemetry: Get Notification Message Telemetry and PNS feedback. Per un esempio di codice, vedere l'esempio REST per l'invio.For sample code, see the Send REST example.

Problemi del servizio di notifica pushPush notification service issues

Dopo la ricezione del messaggio di notifica dal servizio di notifica push della piattaforma, è responsabilità del servizio di notifica push recapitare la notifica al dispositivo.After the notification message has been received by the platform push notification service, it's the responsibility of the push notification service to deliver the notification to the device. A questo punto, il servizio Hub di notifica non è coinvolto in questa operazione e non controlla in alcun modo se e quando la notifica viene recapitata al dispositivo.At this point, the Notification Hubs service is out of the picture and has no control over when or if the notification is delivered to the device.

Dato che i servizi di notifica della piattaforma sono affidabili, le notifiche raggiungono tendenzialmente i dispositivi in pochi secondi dal servizio di notifica push.Because platform notification services are robust, notifications tend to reach devices from the push notification service in a few seconds. Se il servizio di notifica push è limitato, Hub di notifica applica una strategia con backoff esponenziale.If the push notification service is throttling, Notification Hubs applies an exponential back-off strategy. Se il servizio di notifica push rimane non raggiungibile per 30 minuti, viene applicato un criterio che determina la scadenza dei messaggi e la loro eliminazione permanente.If the push notification service remains unreachable for 30 minutes, we have a policy in place to expire and drop those messages permanently.

Se un servizio di notifica push tenta di recapitare una notifica, ma il dispositivo è offline, la notifica viene archiviata dal servizio di notifica push per un periodo di tempo limitatoIf a push notification service attempts to deliver a notification but the device is offline, the notification is stored by the push notification service for a limited period of time. e viene recapitata al dispositivo quando ritorna disponibile.The notification is delivered to the device when the device becomes available.

Per ogni app viene archiviata una sola notifica recente.For each app, only one recent notification is stored. Se vengono inviate più notifiche quando un dispositivo è offline, ogni nuova notifica determina la rimozione di quella precedente.If multiple notifications are sent while a device is offline, each new notification causes the prior notification to be discarded. Il comportamento che prevede che venga mantenuta solo la notifica più recente prende il nome di unione delle notifiche nel servizio APN e compressione in FCM (che usa una chiave di compressione).Keeping only the newest notification is referred to as coalescing notifications in APNs, and collapsing in FCM (which uses a collapsing key). Se il dispositivo rimane offline a lungo, le eventuali notifiche archiviate per esso vengono rimosse.If the device remains offline for a long time, any notifications that were being stored for the device are discarded. Per altre informazioni, vedere APNs overview (Panoramica del servizio APN) e About FCM messages (Informazioni sui messaggi FCM).For more information, see APNs overview and About FCM messages.

Con Hub di notifica di Azure, è possibile passare una chiave di unione tramite un'intestazione HTTP usando l'API SendNotification generica.With Azure Notification Hubs, you can pass a coalescing key via an HTTP header by using the generic SendNotification API. Ad esempio, SendNotificationAsync per .NET SDK.For example, for the .NET SDK, you'd use SendNotificationAsync. L'API SendNotification usa inoltre le intestazioni HTTP passate così come sono al servizio di notifica push corrispondente.The SendNotification API also takes HTTP headers that are passed as-is to the respective push notification service.

Suggerimenti per l'autodiagnosiSelf-diagnosis tips

Di seguito vengono descritti i percorsi per diagnosticare la causa radice del mancato recapito delle notifiche in Hub di notifica:Here are paths to diagnosing the root cause of dropped notifications in Notification Hubs:

Verificare le credenzialiVerify credentials

  • Portale per sviluppatori del servizio di notifica pushPush notification service developer portal

    Verificare le credenziali nel rispettivo portale per sviluppatori del servizio di notifica push corrispondente (APN, FCM, il servizio di notifica di Windows e così via).Verify credentials in the respective push notification service developer portal (APNs, FCM, Windows Notification Service, and so on). Per altre informazioni vedere Introduzione ad Hub di notifica di Azure.For more information, see Get started with Azure Notification Hubs.

  • Portale di AzureAzure portal

    Per verificare le credenziali e confrontarle con quelle ottenute dal portale per sviluppatori del servizio di notifica push, nel portale di Azure passare alla scheda Criteri di accesso.To review and match the credentials with those that you obtained from the push notification service developer portal, in the Azure portal, go to the Access Policies tab.

    Criteri di accesso del portale di Azure

Verificare le registrazioniVerify registrations

  • Visual StudioVisual Studio

    Se si usa Visual Studio per lo sviluppo è possibile connettersi ad Azure tramite Esplora server per visualizzare e gestire più servizi di Azure, incluso Hub di notifica.If you use Visual Studio for development, you can connect to Azure through Server Explorer to view and manage multiple Azure services, including Notification Hubs. Questo risulta particolarmente utile per l'ambiente sviluppo/test.This is primarily useful for your dev/test environment.

    Esplora server di Visual Studio.

    È possibile visualizzare e gestire tutte le registrazioni nell'hub, classificate in base a registrazioni di piattaforma, native o di modello, tutti i tag, l'identificatore del servizio di notifica push, l'ID di registrazione e la data di scadenza.You can view and manage all the registrations in your hub, categorized by platform, native or template registration, any tags, push notification service identifier, registration ID, and expiration date. È anche possibile modificare una registrazione in questa pagina.You can also edit a registration on this page. Questo è particolarmente utile per la modifica dei tag.This is especially useful for editing tags.

    Registrazioni dei dispositivi con Visual Studio

    Nota

    Usare Visual Studio per modificare le registrazioni solo durante le fasi di sviluppo/test e con un numero limitato di registrazioni.Use Visual Studio to edit registrations only during dev/test, and with a limited number of registrations. Se è necessario modificare le registrazioni in blocco, è possibile usare la funzionalità di esportazione e importazione delle registrazioni descritta in Esportare e modificare in blocco le registrazioni.If you need to edit your registrations in bulk, consider using the export and import registration functionality described in Export and modify registrations in bulk.

  • Service Bus ExplorerService Bus Explorer

    Molti clienti usano Service Bus Explorer per visualizzare e gestire il relativo hub di notifica.Many customers use Service Bus Explorer to view and manage their notification hub. Service Bus Explorer è un progetto open source.Service Bus Explorer is an open-source project. Per esempi, vedere codice Service Bus Explorer.For samples, see Service Bus Explorer code.

Verificare le notifiche di messaggiVerify message notifications

Eseguire il debug di notifiche non riuscite ed esaminare l'esito della notificaDebug failed notifications and review notification outcome

Proprietà EnableTestSendEnableTestSend property

Quando si invia una notifica tramite Hub di notifica, inizialmente, la notifica viene accodata per l'elaborazione in Hub di notifica.When you send a notification via Notification Hubs, initially, the notification is queued for processing in Notification Hubs. Hub di notifica determina le destinazioni corrette e quindi invia la notifica al servizio di notifica push.Notification Hubs determines the correct targets, and then sends the notification to the push notification service. Se si usa l'API REST o un SDK client, l'esito corretto della chiamata di invio significa solo che il messaggio è stato inserito correttamente nella coda in Hub di notifica.If you are using the REST API or any of the client SDKs, the successful return of your send call means only that the message has been successfully queued with Notification Hubs. Non sono disponibili altri dettagli su quanto effettivamente accaduto quando Hub di notifica ha infine inviato il messaggio al servizio di notifica push.You don't have any insight into what happened when Notification Hubs eventually sent the message to the push notification service.

Se la notifica non arriva al dispositivo client, è possibile che si sia verificato un errore durante il tentativo di Hub di notifica di recapitare il messaggio al servizio di notifica push.If your notification doesn't arrive at the client device, it's possible that an error occurred when Notification Hubs tried to deliver the message to the push notification service. Ad esempio, le dimensioni del payload potrebbero superare il massimo consentito dal servizio di notifica push o le credenziali configurate in Hub di notifica potrebbero non essere valide.For example, the payload size might exceed the maximum allowed by the push notification service, or the credentials configured in Notification Hubs might be invalid.

Per ottenere informazioni dettagliate sugli errori del servizio di notifica push, è possibile usare la proprietà EnableTestSend.To get insight into push notification service errors, you can use the EnableTestSend property. Questa proprietà viene abilitata automaticamente quando si inviano messaggi di prova dal portale o dal client di Visual StudioThis property is automatically enabled when you send test messages from the portal or Visual Studio client. e consente di visualizzare informazioni di debug dettagliate.You can use this property to see detailed debugging information. È anche possibile usare la proprietà tramite le API.You can also use the property via APIs. Attualmente, è possibile usarla in .NET SDK.Currently, you can use it in the .NET SDK. È previsto che venga aggiunta a tutti gli SDK client.Eventually, it will be added to all client SDKs.

Per usare la proprietà EnableTestSend con la chiamata REST, aggiungere un parametro di stringa di query denominato test alla fine della chiamata di invio.To use the EnableTestSend property with the REST call, append a query string parameter called test to the end of your send call. Ad esempio: For example:

https://mynamespace.servicebus.windows.net/mynotificationhub/messages?api-version=2013-10&test

Esempio (.NET SDK)Example (.NET SDK)

Di seguito è riportato un esempio di uso di .NET SDK per inviare una notifica popup nativa:Here's an example of using the .NET SDK to send a native pop-up (toast) notification:

    NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString(connString, hubName);
    var result = await hub.SendWindowsNativeNotificationAsync(toast);
    Console.WriteLine(result.State);

Al termine dell'esecuzione, result.State indica semplicemente Enqueued.At the end of the execution, result.State simply states Enqueued. I risultati non offrono alcuna informazione su quanto accaduto alla notifica push.The results don't provide any insight into what happened to your push notification.

Successivamente, è possibile usare la proprietà booleana EnableTestSend.Next, you can use the EnableTestSend Boolean property. Usare la proprietà EnableTestSend mentre si inizializza NotificationHubClient per ottenere uno stato dettagliato degli errori del servizio di notifica push che si verificano quando viene inviata la notifica.Use the EnableTestSend property while you initialize NotificationHubClient to get a detailed status about push notification service errors that occur when the notification is sent. La chiamata di invio impiega ulteriore tempo per restituire il controllo, perché ciò avviene solo dopo che Hub di notifica ha recapitato la notifica al servizio di notifica push per determinare il risultato.The send call takes additional time to return because it's returned only after Notification Hubs has delivered the notification to the push notification service to determine the outcome.

    bool enableTestSend = true;
    NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString(connString, hubName, enableTestSend);

    var outcome = await hub.SendWindowsNativeNotificationAsync(toast);
    Console.WriteLine(outcome.State);

    foreach (RegistrationResult result in outcome.Results)
    {
        Console.WriteLine(result.ApplicationPlatform + "\n" + result.RegistrationId + "\n" + result.Outcome);
    }

Output di esempioSample output

DetailedStateAvailable
windows
7619785862101227384-7840974832647865618-3
The Token obtained from the Token Provider is wrong

Questo messaggio indica che in Hub di notifica sono configurate credenziali non valide oppure è presente un problema per le registrazioni nell'hub.This message indicates that either invalid credentials are configured in Notification Hubs, or there's an issue with the registrations in the hub. È consigliabile eliminare questa registrazione e consentire al client di creare nuovamente la registrazione prima di inviare il messaggio.We recommend that you delete this registration, and let the client re-create the registration before sending the message.

Nota

L'uso della proprietà EnableTestSend è molto limitato.Use of the EnableTestSend property is heavily throttled. Usare questa opzione solo in un ambiente di sviluppo/test e con un numero limitato di registrazioni.Use this option only in a dev/test environment, and with a limited set of registrations. Le notifiche di debug vengono inviate solo a 10 dispositivi.We send debug notifications to only 10 devices. Inoltre è previsto un limite di 10 invii al minuto per l'elaborazione di debug.We also have a limit of processing debug sends to 10 per minute.

Esaminare i dati di telemetriaReview telemetry

  • Usare il portale di AzureUse the Azure portal

    Nel portale è possibile ottenere una rapida panoramica di tutte le attività nell'hub di notifica.In the portal, you can get a quick overview of all the activity in your notification hub.

    1. Nella scheda Panoramica è disponibile una visualizzazione aggregata di registrazioni, notifiche ed errori in base alla piattaforma.On the Overview tab, you can see an aggregated view of registrations, notifications, and errors by platform.

      Dashboard di panoramica di Hub di notifica

    2. Nella scheda Monitoraggio è possibile aggiungere molte altre metriche specifiche della piattaforma per un'analisi più approfondita.On the Monitor tab, you can add many other platform-specific metrics for a deeper look. È possibile esaminare in particolare gli eventuali errori relativi al servizio di notifica push restituiti quando il servizio Hub di notifica tenta l'invio della notifica al servizio di notifica push.You can look specifically at any errors related to the push notification service that are returned when the Notification Hubs service tries to send the notification to the push notification service.

      Log attività del portale di Azure

    3. Per iniziare, esaminare Messaggi in ingresso, Operazioni di registrazione e Notifiche riuscite.Begin by reviewing Incoming Messages, Registration Operations, and Successful Notifications. Passare quindi alla scheda per ogni piattaforma per esaminare gli errori specifici per il servizio di notifica push.Then, go to the per-platform tab to review errors that are specific to the push notification service.

    4. Se le impostazioni di autenticazione per l'hub di notifica non sono corrette, viene visualizzato il messaggio Errore di autenticazione PNS.If the authentication settings for your notification hub are incorrect, the message PNS Authentication Error appears. Questo errore suggerisce appunto che è necessario controllare le credenziali del servizio di notifica push.This is a good indication to check the push notification service credentials.

  • Accesso a livello di codiceProgrammatic access

    Per altre informazioni sull'accesso programmatico, vedere questi articoli:For more information about programmatic access, see these articles:

    • Accesso alla telemetria a livello di codiceProgrammatic telemetry access
    • Esempio di accesso alla telemetria tramite APITelemetry access via APIs sample

      Nota

      Diverse funzionalità correlate alla telemetria, come l'esportazione e importazione di registrazioni e l'accesso ai dati di telemetria tramite le API, sono disponibili solo con il livello di servizio Standard.Several telemetry-related features, like exporting and importing registrations and telemetry access via APIs, are available only on the Standard service tier. Se si tenta di usare queste funzionalità dal livello di servizio Gratuito o Basic, viene visualizzato un messaggio di eccezione se si usa l'SDK e un errore HTTP 403 (accesso negato) se si usano le funzionalità direttamente dalle API REST.If you attempt to use these features from the Free or Basic service tier, you receive an exception message if you use the SDK, and an HTTP 403 (Forbidden) error if you use the features directly from the REST APIs.

      Per usare le funzionalità correlate alla telemetria, verificare innanzitutto nel portale di Azure che sia in uso il livello di servizio Standard.To use telemetry-related features, first ensure in the Azure portal that you are using the Standard service tier.