Felsöka WNS-push-meddelanden

I det här avsnittet beskrivs inledande felsökningssteg som du bör vidta när du stöter på problem med panel-, popup- och märkesmeddelanden, inklusive de olika meddelandemetoderna: lokala, push-meddelanden, periodiska och schemalagda meddelanden.

Felsökning av specifika fel

I det här avsnittet åtgärdas några vanliga fel som kan uppstå när du arbetar med push-meddelanden.

  • Kontrollera händelseloggarna
  • Push-meddelanden tar emot ett "200 OK"-svar, men visas inte
  • Push-meddelande returnerar en annan kod än "200 OK"
  • Fel vid försök att skapa en push-meddelandekanal

Kontrollera händelseloggarna

Om push-meddelanden för paneler eller popup-meddelanden inte visas som förväntat kan du titta på händelseloggarna.

  • Om meddelandet tas emot men inte visas: Starta Händelsevisaren och granska loggen Microsoft-Windows-TWinUI/Operational under Program och tjänster\Microsoft\Windows\Apps.
  • Om meddelandet inte tas emot alls: Starta Loggboken och granska driftloggen under Program och tjänster\Microsoft\Windows\PushNotifications-Platform.

Push-meddelanden tar emot ett "200 OK"-svar, men visas inte

Om Windows Push Notification Services (WNS) returnerar ett "200 OK"-svar levererar det meddelandet till klienten om klienten är online. Om du har kontrollerat att klienten är online men inte visar meddelandet går du igenom följande steg:

  • Orsak: XML-fel i meddelandeinnehållet.

    Åtgärda: Verifiera den grundläggande XML-syntaxen och kontrollera att XML-koden är fullständig och korrekt. Några vanliga felpunkter i XML-innehållet är följande:

    • Case sensitivity. Taggnamn, attributnamn och attributvärden är alla skiftlägeskänsliga. Kontrollera att XML-koden har rätt hölje.
    • Ett bindningselement måste anges för varje panelformat som stöds. Du bör ange ett bindningselement för varje panelstorlek som du stöder i varje meddelande som du skickar.
    • Textsträngar får inte innehålla reserverade XML-tecken. Du kan till exempel inte kursivisera panel- eller popup-strängar genom att inkludera taggarna <i> och </i>. Om du tänker visa literaltecknen "<i>", bör de vara korrekt escape-sekvenserade. Mer information om escape-tecken i XML finns i XML-teckenentiteter och XAML.
    • Värdena som anges för attributen lang måste överensstämma med specifikationen ITEF BCP 47.
    • XML-strängar som skickas via push-meddelanden bör använda UTF-8-kodningen.
    • Om du inkluderar ett bildelement i XML-nyttolasten med ett icke-tomt src-attribut måste du inkludera en referens till en giltig bild, annars tas meddelandet bort.
  • Orsak: Felaktig användning av API-parametrar för push-meddelanden

    Åtgärda: Mer information finns i API-dokumentationen i namnområdet Windows.Networking.PushNotifications .

  • Orsak: Rubriktypen matchar inte meddelandeinnehållet. Om X-WNS-Type-headern inte är inställd på ett värde – tile, badge, eller flik – som motsvarar den meddelandemall som specificeras i nyttolasten, visas inte meddelandet. Det här matchningsfelet orsakar ett fel på klienten och meddelandet tas bort.

    Åtgärda: Se push-meddelandetjänstens begäran och svarshuvuden för att se till att appservern använder rätt värde för X-WNS-Type-huvudet.

  • Orsak: TTL-värdet (time to live), som anges i rubriken X-WNS-TTL, är för litet.

    Korrigering: Ange ett större TTL-värde, eftersom du är medveten om att värdet anges i sekunder.

Om du fortfarande inte ser att din avisering visas efter att ha adresserat punkterna i de föregående stegen, se felsökningsstegen för lokala aviseringar i avsnittet om att den lokala rutan för aviseringar inte visas för ytterligare förslag.

Push-meddelande returnerar en annan kod än "200 OK"

Om WNS inte returnerar "200 OK" levereras inte meddelandet till klienten. Om returkoden är på 400-talet bör du som utvecklare kunna åtgärda problemet.

Note

Fel som inte anges specifikt här finns i COM-felkoder (WPN, MBN, P2P, Bluetooth).

  • Meddelandebegäran returnerar "400 Felaktig begäran"
  • Meddelandebegäran returnerar "401 Obehörig"
  • Meddelandebegäran returnerar "401 Obehörig", token har upphört att gälla
  • Meddelandebegäran returnerar "403 Förbjudet"
  • Meddelandebegäran returnerar "404 hittades inte"
  • Meddelandebegäran returnerar "406 inte acceptabelt"
  • Meddelandebegäran returnerar "410 Borta"

Meddelandebegäran returnerar "400 Felaktig begäran"

  • Orsak: Användningen av en eller flera WNS-huvuden kan vara felaktig eller så var HTTP-begäran ogiltig.

    Åtgärda: Se push-meddelandetjänstens begäran och svarshuvuden för att säkerställa att appservern använder alla anpassade rubriker enligt beskrivningen.

Meddelandebegäran returnerar "401 Obehörig"

  • Orsak: Appservern måste använda rätt paketsäkerhetsidentifierare (paket-SID) och den hemliga nyckel som du fick när du registrerade din app. Om du nyligen har ändrat din hemliga nyckel på Windows Store-instrumentpanelen måste du också uppdatera appservern.

    Korrigering: Gå till Windows StoreDashboard för att verifiera paket-SID och hemlighet.

Meddelandebegäran returnerar "401 Obehörig", token har upphört att gälla

  • Orsak: En åtkomsttoken har en begränsad livslängd. Om du skickar ett meddelande med en utgången åtkomsttoken är appserverns autentiseringsuppgifter ogiltiga och meddelandet kan inte skickas.

    Åtgärda: Begär en ny åtkomsttoken från WNS genom att autentisera med WNS med hjälp av paketsäkerhetsidentifieraren (paket-SID) och den hemliga nyckeln. Mer information finns i översikten över Windows Push Notification Services (WNS)

Meddelandebegäran returnerar "403 Förbjudet"

  • Orsak: Det här felet uppstår när åtkomsttoken som du presenterade inte matchar de autentiseringsuppgifter som krävs för att skicka meddelanden till motsvarande kanal-URL. Varje app måste vara registrerad i Windows Store för att ta emot autentiseringsuppgifter för sin appserver. För varje app kan endast de autentiseringsuppgifter som tillhandahålls av Windows Store användas för att skicka meddelanden till appen och de kan endast användas för den specifika appen.

    Åtgärda: Logga in på Windows Store-instrumentpanelen med ditt utvecklarkonto. Välj din app och klicka på "Avancerade funktioner" –> "Hantera dina molntjänstinställningar". Välj "Identifiera din app" för att läsa instruktioner om hur du uppdaterar appmanifestet så att det matchar dina autentiseringsuppgifter för molntjänsten.

Meddelandebegäran returnerar "404 hittades inte"

  • Orsak: Det här felet innebär vanligtvis att kanal-URL:en inte har skapats korrekt. Kanal-URL:en får aldrig manipuleras eller ändras när du skickar ett meddelande till WNS. Kanal-URL:en ska alltid behandlas som en ogenomskinlig sträng – du behöver aldrig undersöka eller ens känna till innehållet.

    Korrigering: Kontrollera att koden inte ändrar kanal-URL:en antingen genom att ändra ett eller flera av dess tecken eller ändra kodningen.

Meddelandebegäran returnerar "406 inte acceptabelt"

  • Orsak: WNS har skyddsprinciper för att förhindra att skadliga appar påverkar tjänsten negativt för andra användare och utvecklare. Ett överdrivet antal meddelanden på för kort tid kan leda till att WNS ignorerar meddelanden.

    Åtgärda: Granska meddelandefrekvensen för att se om den kan minskas eller optimeras för att skapa en bättre användarupplevelse.

Meddelandebegäran returnerar "410 Borta"

  • Orsak: Kanal-URL:en har upphört att gälla. Inga ytterligare meddelanden kan skickas förrän appen körs och begär en ny kanal-URL.

    Korrigering: Din Windows Store-app bör begära en kanal-URL varje gång den startas. Kanal-URL:en som den tilldelas är inte garanterad att förbli densamma. Om URL:en har ändrats bör klienten uppdatera informationen på sin molnserver.

Fel vid försök att skapa en push-meddelandekanal

  • Att skapa en meddelandekanal resulterar i ett ERROR_NO_NETWORK fel
  • Att skapa en meddelandekanal resulterar i ett WPN_E_CLOUD_INCAPABLE fel
  • Att skapa en meddelandekanal resulterar i ett WPN_E_INVALID_APP fel

Note

Fel som inte anges specifikt här finns i COM-felkoder (WPN, MBN, P2P, Bluetooth).

Att skapa en meddelandekanal resulterar i ett ERROR_NO_NETWORK fel

  • Orsak: WNS kräver en Internetanslutning för att skapa en meddelandekanal.

    Åtgärda: Kontrollera internetanslutningen.

Att skapa en meddelandekanal resulterar i ett WPN_E_CLOUD_INCAPABLE fel

  • Orsak: Appen har inte deklarerat Internetfunktionen i sitt appmanifest (package.appxmanifest).

    Åtgärda: Kontrollera att appmanifestet har deklarerat Internetfunktion. I Visual Studio-manifestredigeraren hittar du det här alternativet under fliken Funktioner som Internet (klient). Mer information finns i Funktioner.

Att skapa en meddelandekanal resulterar i ett WPN_E_INVALID_APP fel

  • Orsak: Din app måste använda ett giltigt paketnamn. Om du inte har fått någon ännu kan du hämta den via Windows Store-portalen under "Avancerade funktioner".

    Korrigering: Mer information om hur du hämtar en PKSID (Package Security Identifier) för din Windows Store-app finns i Översikt över Windows Push Notification Services (WNS).

Rapportera ett problem

Om du har provat lösningarna som föreslås i det här avsnittet och inte har löst problemet lägger du upp ett meddelande på Microsoft-forumen för att diskutera det med både Microsoft-utvecklare och andra berörda parter.

För push-meddelanden kan du, förutom en beskrivning av problemet, bli ombedd att ange din kanal-URL och ett exempel på svaret du fick från WNS, inklusive både HTTP-felkoderna och HTTP-huvudena. Det finns specifika rubriker som appservern ska logga när du rapporterar ett problem. Mer information finns i push-meddelandetjänstens begärans- och svarshuvuden.