2017-07-12 16 views
5

Zaman zaman bildirimlerin bir iOS istemcisine teslim edilmesinin sessizce başarısız olduğu NotificationHubs ile ilgili bir sorunla karşılaşıyorum.Kesintili Bildirim Bir "NotificationSystemError" ile teslim hataları başarısız: "InvalidToken"

Bildirim Hub'ım, APNS ile (eski sertifika kimlik doğrulamasının aksine) belirteci kimlik doğrulaması kullanacak şekilde ayarlanmıştır.

Bildirim hub fiyatlandırma düzeyini standart olarak güncelledim, böylece daha fazla bilgi edinebildim. Çoğu zaman (% 95'in üzerinde) bildirimler doğru bir şekilde geçer. Bildirim Hub'larıyla kuyruğa alınmış her push bildiriminin NotificationId'ini izlemek için günlük ekledim. Bir başarısızlık alarma geçti Sonra, ben gidip şu yöntemle belirli bildirim için ayrıntıları baktı: (anlam NotificationHubs vardı

var details = await notificationHub.GetNotificationOutcomeDetailsAsync("<notification id>"); 

Ben Devlet iken "Tamamlandı" fark ayrıntıları incelenmesi PnsErrorDetailsUri bildirim teslim bir sorun olduğunu belirten bir boş olmayan bir değer vardı) alınan ve operasyon işlenen:

enter image description here

bir tarayıcıda PnsErrorDetailsUri değerine gezinme aşağıdaki dosya indirilecek neden :

enter image description here

burada, ben NotificationSystemError bir "InvalidToken" olduğunu söylüyor fark ettim. Bu belirteç, Azure ve APNS arasındaki bazı "kapaklar altında" iletişim ile ilgili olması gerektiği gibi görünüyor. NotificationHubs'da kayıtlı olan cihaz belirtecinin geçersiz olması kesinlikle VERİLMEZ. KayıtIdüğümün hâlâ bildirim hub'larında olduğunu ve doğru aygıta işaret ettiğini doğruladım. Ayrıca, ham NotificationBody'yi ayrıntılardan alıp aynı etiketle yeniden göndererek yeni bildirimin başarılı bir şekilde teslim edilmesine neden oluyor.

InvalidToken'ın atıfta bulunup bulunmadığını veya aralıklı NotificationHub dağıtım hatalarının nedeninin ne olabileceğini bilen var mı?

GÜNCELLEME:

farklı NotificationSystemErrors here, bunlardan biri benim InvalidToken hata olma söz bulduk. Ancak, bu hataların gerçek nedenlerinin ne olduğunu açıklayamıyorum.

+0

Hizmetinizde kimlik doğrulaması etkin mi? Varsa, geçerli bir erişim belirteci içeren istekte bir X-ZUMO-AUTH üstbilgisi sunmanız gerekir. Aksi halde geçersiz bir simge hatası verilir. – Amor

+0

Tüm üstbilgileri benim için yönetmesi gereken C# NotificationHubs nuget paketini kullanıyorum. Ayrıca, bildirimlerim bir Azure Hizmet veri yolu kuyruğu tarafından tetiklenen bir maskeleme işlevinden sıraya alındı ​​- kimlik doğrulama özellikleri etkin değil. – lehn0058

+0

Hala bu sorunla karşılaşıyor musunuz? Bunu daha fazla araştırmak için bize [email protected] ile birlikte zaman alanıyla birlikte ad alanı ve hub ayrıntılarını da paylaşır mısınız? – Sateesh

cevap

0

Hataların neden gerçekleştiğine dair kesin bir cevabı hiç almadım, ancak sorunumu çözdüğüm anlaşılıyor.

2 ayrı bildirim ad alanı/hub var, biri elma üretimi bildirimleri için ve bir tanesi de elma sanal alanı bildirimleri için. Cihazlar, doğru hub ile kayıt yapabilmemiz için bir anahtara sahip. Tüm kayıtlarımızı araştırdım ve hepsinin doğru yerde olduğunu gördüm. Bununla birlikte, bu inceleme sırasında birçok cihazda çok sayıda kayıt olduğunu fark ettim. Bu kayıtların her biri, SAME apple PNS tanımlayıcısına sahipti (ki bu geçerli bir belirteçti), fakat bana aynı PNS jetonunun düzinelerce (bir vakada yüzlerce) kayıtlı olması garip görünüyordu. Her bir Kayıt Kimliği aynıydı, ancak bundan sonra tirelenmiş bir artış sayısı var (örneğin, 1231231231235396312-6910179870480973035-1, 1231231231235396312-6910179870480973035-2, 1231231231235396312-6910179870480973035-3, vb.). NotificationHubClient'i her aradığımda görünüyor.CreateAppleNativeRegistrationAsync, de-duping yapmadan yeni bir giriş ekliyor. Bu yinelenen öğeleri temizlemek, karşılaştığım sorunu çözmüş görünüyor. NotificationHubs, bir cihaza bağlı olmak kaydıyla çok fazla kayıt yapıldığında bazen karışıyordu.

Şu an için çiftleri filtrelemeyi denemek için bir kod ekledim. Ancak, NotificationHubs benim için bunu işlemek gerekir ...

İlgili konular