Azure通知中心注册设备错误404

时间:2018-02-04 23:32:20

标签: c# azure push-notification azure-notificationhub

这是我第一次使用Azure通知中心,而且我在使用我的应用程序时遇到了一些问题。

我坚持使用的部分(目前)正在使用通知中心注册我的设备。我使用后端方法进行注册......也就是说,我创建了一个Installation对象,并使用CreateOrUpdateInstallationAsync方法通过我的Web API注册设备。我只是在这个阶段进行测试,所以我通过Postman用虚拟数据点击我的API端点。

当我单步执行代码时,执行CreateOrUpdateInstallationAsync时出现以下错误...

  

远程服务器返回错误:(404)Not Found。实体没有   exist.TrackingId:203cba37-007d-4dcb-AE25-ced33fa012aa_G1,时间戳:2018年2月4日   下午10:24:02

我已经通过调用GetAllRegistrationsAsync来测试我是否正确连接到Notification Hub。这将返回一个空列表(预期)并且没有错误...所以我的端点设置正确。我想知道我的虚拟数据是否有问题?对于安装ID,我刚刚创建了一个随机GUID(Guid.NewGuid)。设备ID和推送通知句柄是随机数字和字母。我正在为Android平台(NotificationPlatform.Gcm)测试这个。

之前有没有人见过这个错误,知道这意味着什么?我是否能够将随机数据用于测试目的(我只对在此阶段注册设备感兴趣)或者我是否需要合法数据(真实设备ID等)?

提前致谢。

2 个答案:

答案 0 :(得分:1)

CreateOrUpdateInstallationAsync方法实质上会调用REST API Create or Overwrite an Installation。当您使用安装从自定义后端注册通知中心时,核心代码如下所示:

NotificationHubClient hubclient = NotificationHubClient.CreateClientFromConnectionString(listenConnString, hubName);
await hubclient.CreateOrUpdateInstallationAsync(installation);

注意:您可以安装Microsoft.Azure.NotificationHubs软件包以进行后端操作。

为了更简单的方法,我刚刚创建了一个控制台应用程序并按如下方式测试此操作:

enter image description here

注意:我刚刚创建了一个新的Azure通知中心,但没有设置任何通知设置。我将GUID设置为InstallationId,将随机字符串设置为PushChannel,其余操作可以按预期工作。

我可以按如下方式检索之前添加的注册:

enter image description here

  

之前有没有人见过这个错误,知道这意味着什么?我是否能够将随机数据用于测试目的(我只对在此阶段注册设备感兴趣)或者我是否需要合法数据(真实设备ID等)?

该操作可能对我有用,我建议您调试应用程序并利用fiddler捕获网络跟踪以缩小此问题。此外,您可以关注Registration management以获取有关使用azure通知中心注册设备的更多详细信息。

答案 1 :(得分:0)

好的,事实证明,在使用NotificationHubClient.CreateClientFromConnectionString实例化NotificationHub对象时,我使用了Hub Name的错误值。我使用的是名称空间,而不是集线器名称(在Azure门户的“概述”选项卡上可见)。