Rozwiązywanie problemów z powiadomieniami push usługi WNS

W tym temacie omówiono początkowe kroki rozwiązywania problemów, które należy podjąć, gdy wystąpią problemy z powiadomieniami kafelków, typu toast oraz znaczkami, w tym różne metody powiadomień: lokalne, push, okresowe i zaplanowane.

Rozwiązywanie problemów z określonymi błędami

W tej sekcji opisano niektóre typowe błędy, które mogą wystąpić podczas pracy z powiadomieniami wypychanymi.

  • Sprawdzanie dzienników zdarzeń
  • Powiadomienie push odbiera odpowiedź "200 OK", ale nie jest wyświetlane.
  • Powiadomienie push zwraca kod inny niż "200 OK"
  • Błędy podczas próby utworzenia kanału powiadomień push

Sprawdzanie dzienników zdarzeń

Jeśli kafelki lub powiadomienia toast nie są wyświetlane zgodnie z oczekiwaniami, sprawdź dzienniki zdarzeń.

  • Jeśli powiadomienie zostanie odebrane, ale nie jest wyświetlane: Uruchom Podgląd zdarzeń i sprawdź dziennik Microsoft-Windows-TWinUI/Operational w obszarze Aplikacje i usługi\Microsoft\Windows\Apps.
  • Jeśli powiadomienie w ogóle nie zostanie odebrane: uruchom Podgląd zdarzeń i sprawdź dziennik operacyjny w obszarze Aplikacje i usługi\Microsoft\Windows\PushNotifications-Platform.

Powiadomienie push odbiera odpowiedź "200 OK", ale nie jest wyświetlane.

Jeśli usługi powiadomień wypychanych systemu Windows (WNS) zwracają odpowiedź "200 OK", wówczas zostanie wyświetlone powiadomienie do klienta, jeśli klient jest w trybie online. Jeśli sprawdzono, że klient jest w trybie online, ale nie wyświetla powiadomienia, wykonaj następujące kroki:

  • Przyczyna: Błędy XML w zawartości powiadomienia.

    Poprawka: Sprawdź podstawową składnię XML i upewnij się, że kod XML jest kompletny i poprawny. Niektóre typowe punkty awarii w zawartości XML obejmują następujące elementy:

    • Case sensitivity. Nazwy tagów, nazwy atrybutów i wartości atrybutów są rozróżniane pod względem wielkości liter. Upewnij się, że kod XML ma poprawną wielkość liter.
    • Należy podać element powiązania dla każdego obsługiwanego formatu kafelka. Należy uwzględnić element wiązania dla każdego z obsługiwanych rozmiarów kafelków w każdym wysyłanym powiadomieniu.
    • Ciągi tekstowe nie powinny zawierać zastrzeżonych znaków XML. Na przykład nie można stosować kursywy dla napisów kafelków ani ciągów toastu, dołączając tagi <i> oraz </i>. Jeśli zamierzasz wyświetlić znaki literału "<i>", powinny one zostać prawidłowo uniknięte. Aby uzyskać więcej informacji na temat znaków ucieczki w formacie XML, zobacz Jednostki znaków XML i XAML.
    • Wartości podane dla atrybutów języka muszą być zgodne ze specyfikacją ITEF BCP 47.
    • Ciągi XML wysyłane za pośrednictwem powiadomień push powinny używać kodowania UTF-8.
    • Jeśli element obrazu zostanie uwzględniony w ładunku XML z niepustym atrybutem src, pamiętaj, aby dołączyć odwołanie do prawidłowego obrazu lub powiadomienie zostanie porzucone.
  • Przyczyna: niewłaściwe użycie parametrów interfejsu API powiadomień push

    Poprawka: zapoznaj się z dokumentacją interfejsu API w przestrzeni nazw Windows.Networking.PushNotifications , aby uzyskać szczegółowe informacje.

  • Przyczyna: Typ nagłówka nie jest zgodny z zawartością powiadomienia. Jeśli nagłówek X-WNS-Type nie jest ustawiony na wartość, taką jak kafelek, znaczek lub komunikat, która odpowiada szablonowi powiadomień określonemu w ładunku, powiadomienie nie zostanie wyświetlone. Ta niezgodność spowoduje błąd na kliencie, a powiadomienie zostanie porzucone.

    Fix: Zapoznaj się z nagłówkami żądań i odpowiedzi usługi powiadomień push , aby upewnić się, że serwer aplikacji używa poprawnej wartości nagłówka X-WNS-Type.

  • Przyczyna: Wartość czasu wygaśnięcia (TTL) ustawiona w nagłówku X-WNS-TTL jest za mała.

    Poprawka: podaj większą wartość TTL, mając świadomość, że wartość jest podana w sekundach.

Jeśli nadal nie widzisz swojego powiadomienia po zajęciu się elementami w poprzednich krokach, zobacz wskazówki dotyczące rozwiązywania problemów z powiadomieniami lokalnymi w sekcji "Powiadomienie kafelka lokalnego nie jest wyświetlane" w tym temacie, aby uzyskać dalsze wskazówki.

Powiadomienie push zwraca kod inny niż "200 OK"

Jeśli usługa WNS nie zwróci komunikatu "200 OK", powiadomienie nie zostanie dostarczone do klienta. Jeśli kod zwrotny znajduje się w zakresie 400, wówczas jako deweloper powinieneś być w stanie rozwiązać ten problem.

Note

W przypadku błędów, które nie zostały wymienione tutaj, zobacz Kody błędów COM (WPN, MBN, P2P, Bluetooth).

  • Żądanie powiadomienia zwraca wartość "400 Nieprawidłowe żądanie"
  • Żądanie powiadomienia zwraca wartość "401 Brak autoryzacji"
  • Żądanie powiadomienia zwraca komunikat "401 Brak autoryzacji", token wygasł
  • Żądanie powiadomienia zwraca wartość "403 Zabronione"
  • Żądanie powiadomienia zwraca błąd "404 Nie znaleziono"
  • Żądanie powiadomienia zwraca wartość "406 Nie do przyjęcia"
  • Żądanie powiadomienia zwraca wartość "410 Gone"

Żądanie powiadomienia zwraca wartość "400 Nieprawidłowe żądanie"

  • Przyczyna: Użycie co najmniej jednego nagłówka usługi WNS może być nieprawidłowe lub żądanie HTTP było nieprawidłowe.

    Poprawka: zapoznaj się z nagłówkami żądań i odpowiedzi usługi powiadomień push aby upewnić się, że serwer aplikacji używa wszystkich nagłówków niestandardowych zgodnie z opisem.

Żądanie powiadomienia zwraca wartość "401 Brak autoryzacji"

  • Przyczyna: Serwer aplikacji musi używać poprawnego identyfikatora zabezpieczeń pakietu (identyfikator SID pakietu) i klucza tajnego podanego podczas rejestrowania aplikacji. Jeśli ostatnio zmieniono klucz tajny na pulpicie nawigacyjnym Sklepu Windows, musisz również zaktualizować serwer aplikacji.

    Poprawka: odwiedź dashboard Windows Store, aby zweryfikować identyfikator SID pakietu i tajny klucz.

Żądanie powiadomienia zwraca komunikat "401 Brak autoryzacji", token wygasł

  • Przyczyna: Token dostępu ma skończony okres istnienia. Jeśli wyślesz powiadomienie z wygasłym tokenem dostępu, poświadczenia serwera aplikacji są nieprawidłowe i nie można wysłać powiadomienia.

    Poprawka: zażądaj nowego tokenu dostępu z usługi WNS, uwierzytelniając się w usłudze WNS przy użyciu identyfikatora zabezpieczeń pakietu (identyfikator SID pakietu) i klucza tajnego. Aby uzyskać więcej informacji, zobacz omówienie usługi Windows Push Notification Services (WNS)

Żądanie powiadomienia zwraca wartość "403 Zabronione"

  • Przyczyna: Ten błąd występuje, gdy przedstawiony token dostępu jest niezgodny z poświadczeniami wymaganymi do wysyłania powiadomień do odpowiedniego adresu URL kanału. Każda aplikacja musi być zarejestrowana w Sklepie Windows, aby otrzymywać poświadczenia dla serwera aplikacji. Dla każdej aplikacji tylko poświadczenia podane przez Sklep Windows mogą służyć do wysyłania powiadomień do tej aplikacji i mogą być używane tylko dla tej konkretnej aplikacji.

    Poprawka: zaloguj się do pulpitu nawigacyjnego Sklepu Windows przy użyciu konta dewelopera. Wybierz aplikację i kliknij pozycję "Funkcje zaawansowane" —> "Zarządzanie ustawieniami usługi w chmurze". Wybierz pozycję "Identyfikowanie aplikacji", aby przeczytać instrukcje dotyczące aktualizowania manifestu aplikacji w celu dopasowania do poświadczeń usługi w chmurze.

Żądanie powiadomienia zwraca błąd "404 Nie znaleziono"

  • Przyczyna: Ten błąd zwykle oznacza, że adres URL kanału nie jest poprawnie sformułowany. Adres URL kanału nigdy nie może być zniekształcany ani modyfikowany podczas wysyłania powiadomienia do WNS. Adres URL kanału powinien być zawsze traktowany jako nieprzezroczystym ciągiem — nigdy nie trzeba badać ani nawet znać jego zawartość.

    Poprawka: Sprawdź, czy kod nie modyfikuje adresu URL kanału, zmieniając co najmniej jeden jego znak lub zmieniając jego kodowanie.

Żądanie powiadomienia zwraca wartość "406 Nie do przyjęcia"

  • Przyczyna: WNS ma zasady ochronne, aby zapobiec negatywnemu wpływowi złośliwych aplikacji na usługę dla innych użytkowników i deweloperów. Nadmierna liczba powiadomień w zbyt krótkim czasie może spowodować, że usługa WNS w oczywisty sposób odrzuci powiadomienia.

    Fix: Przejrzyj częstotliwość powiadomień, aby sprawdzić, czy można ją zmniejszyć lub zoptymalizować w celu uzyskania lepszego doświadczenia użytkownika.

Żądanie powiadomienia zwraca wartość "410 Gone"

  • Przyczyna: adres URL kanału wygasł. Do momentu uruchomienia aplikacji i żądania nowego adresu URL kanału nie można wysyłać żadnych dalszych powiadomień.

    Poprawka: Aplikacja ze Sklepu Windows powinna zażądać adresu URL kanału przy każdym uruchomieniu. Adres URL kanału, do którego został przypisany, nie ma gwarancji, że pozostanie taki sam. Jeśli adres URL uległ zmianie, klient powinien zaktualizować informacje na serwerze w chmurze.

Błędy podczas próby utworzenia kanału powiadomień push

  • Tworzenie kanału powiadomień powoduje błąd ERROR_NO_NETWORK
  • Tworzenie kanału powiadomień powoduje błąd WPN_E_CLOUD_INCAPABLE
  • Tworzenie kanału powiadomień powoduje błąd WPN_E_INVALID_APP

Note

W przypadku błędów, które nie zostały wymienione tutaj, zobacz Kody błędów COM (WPN, MBN, P2P, Bluetooth).

Tworzenie kanału powiadomień powoduje błąd ERROR_NO_NETWORK

  • Przyczyna: usługa WNS wymaga połączenia internetowego w celu utworzenia kanału powiadomień.

    Poprawka: Sprawdź łączność z Internetem.

Tworzenie kanału powiadomień powoduje błąd WPN_E_CLOUD_INCAPABLE

  • Przyczyna: Aplikacja nie zadeklarowała możliwości Internetu w manifeście aplikacji (package.appxmanifest).

    Poprawka: Upewnij się, że manifest aplikacji zadeklarował możliwość Internetu. W edytorze manifestu programu Visual Studio ta opcja znajduje się na karcie Możliwości jako Internet (klient). Aby uzyskać więcej informacji, zobacz Możliwości.

Tworzenie kanału powiadomień powoduje błąd WPN_E_INVALID_APP

  • Przyczyna: Aplikacja musi używać prawidłowej nazwy pakietu. Jeśli jeszcze go nie otrzymasz, możesz uzyskać go za pośrednictwem portalu Sklepu Windows w obszarze "Funkcje zaawansowane".

    Poprawka: Aby uzyskać szczegółowe informacje na temat pobierania identyfikatora zabezpieczeń pakietu (PKSID) dla aplikacji ze Sklepu Windows, zobacz Omówienie usług powiadomień wypychanych systemu Windows (WNS).

Zgłaszanie problemu

Jeśli wypróbowano rozwiązania sugerowane w tym temacie i nie rozwiązano problemu, opublikuj wiadomość na forach firmy Microsoft , aby omówić je zarówno z deweloperami firmy Microsoft, jak i innymi zainteresowanymi stronami.

W przypadku notyfikacji push, oprócz opisu problemu, możesz zostać poproszony o podanie adresu URL swojego kanału oraz przykładu odpowiedzi otrzymanej z usługi WNS, w tym zarówno kodów błędów HTTP, jak i nagłówków HTTP. Istnieją określone nagłówki, które serwer aplikacji powinien rejestrować podczas zgłaszania problemu. Aby uzyskać więcej informacji, zobacz nagłówki żądań i odpowiedzi usługi powiadomień push.