Azure通知中心注册自动过期删除:与文档描述不符的问题咨询
问题原因分析及排查方向
首先明确:Azure通知中心服务端默认确实不会让注册/安装过期,但你遇到的90天过期是Xamarin.Forms所用的Azure通知中心客户端SDK的默认行为——NotificationHub.Start()方法在创建设备注册(或安装)时,会自动给ExpirationTime设置为当前日期后90天,这是SDK层面的默认配置,和服务端的默认规则不冲突(服务端允许客户端指定过期时间)。
而注册被自动移除的原因就是这些注册的ExpirationTime到期了,通知中心会定期清理过期的注册条目,所以对应的设备就收不到通知了。
接下来可以从这几个方向排查代码疏漏:
- 检查是否在应用启动、后台唤醒等时机,重新调用
NotificationHub.Start()方法。每次调用Start()会刷新设备的注册信息,同时重置ExpirationTime为新的90天后,避免过期。 - 确认是否手动设置过
ExpirationTime属性。如果代码里有显式设置过期时间的逻辑,会覆盖SDK的默认值,需要检查是否有错误的时间配置。 - 区分注册类型:虽然文档说默认不过期,但要确认你创建的是“安装(Installation)”还是“注册(Registration)”——不过
Start()方法一般是创建安装,但SDK可能对安装也默认加了90天过期,你可以通过Azure门户或管理API查看被移除条目的类型,确认是否符合预期。
另外,你可以通过Azure通知中心的监控日志,查看这些注册被移除的具体原因(比如“过期清理”),进一步验证上述结论。
内容的提问来源于stack exchange,提问作者Tharindu
相关产品推荐
相关产品推荐

