无法将 Azure NotificationHub 推送消息从 .NET 控制台应用程序传送到(Android)设备
Posted
技术标签:
【中文标题】无法将 Azure NotificationHub 推送消息从 .NET 控制台应用程序传送到(Android)设备【英文标题】:Failing to deliver Azure NotificationHub push messages to (Android) devices from .NET console app 【发布时间】:2016-03-09 19:36:19 【问题描述】:我已使用较新的 Azure 门户中的“快速启动”说明配置了 .NET 应用服务,以发布应用服务以用作我的移动后端。我还为它配置了一个通知中心,并且能够通过 Azure 移动后端端点从 Xamarin.Forms android 应用程序发送推送通知。我也可以在已注册的 Android 设备上接收推送通知。
我需要能够从 C# 控制台应用程序向注册设备发送推送通知,但无论我尝试什么,推送消息都不会传递。
我正在使用以下代码尝试发送推送消息。当我运行它时,执行结束于...
var result = await hub.SendTemplateNotificationAsync(templateParams);
...控制台应用程序在不等待响应的情况下终止,并且推送通知永远不会发送到注册的设备。
public async void PushSmartAlerts()
string notificationHubName = "DevXXXXNotificationHub";
string notificationHubConnection = "Endpoint=sb://devXXXXXnotificationhubnamespace.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=SnXXXXXXXXXXXXXXXXXXXXXXXX9N8=";
hub = NotificationHubClient .CreateClientFromConnectionString(notificationHubConnection, notificationHubName);
Dictionary<string, string> templateParams = new Dictionary<string, string>();
templateParams["messageParam"] = "Hello";
var result = await hub.SendTemplateNotificationAsync(templateParams);
谁能告诉我哪里出了问题,或者我的做法是否错误?
【问题讨论】:
【参考方案1】:解决了。我使用 NotificationHubClient 创建和发送通知的方式没有任何问题。它不起作用的原因是控制台应用程序不支持 Main 方法中的await
,因此在发送推送通知之前执行就结束了。通过将代码更改为以下代码,推送通知已发送并传递。
string notificationHubName = "xxxxxxx";
string notificationHubConnection = "Endpoint=sb://xxxxxx";
hub = NotificationHubClient.CreateClientFromConnectionString(notificationHubConnection, notificationHubName, true);
Dictionary<string, string> notification = new Dictionary<string, string>()
"messageParam", "It works. Tap to view."
;
var task = hub.SendTemplateNotificationAsync(notification);
task.Wait();
【讨论】:
以上是关于无法将 Azure NotificationHub 推送消息从 .NET 控制台应用程序传送到(Android)设备的主要内容,如果未能解决你的问题,请参考以下文章
适用于桌面应用程序的 Azure NotificationHub(控制台应用程序)
Azure Notificationhub - PN 发送在沙盒中工作但不在生产中
Azure NotificationHub 发送推送时凭据无效
NotificationHub 在注册标签 UWP 中发送通知
NotificationHub Push Notification 返回:从 Token Provider 获取的 Token 错误