无法连接到 Azure 通知中心

Can't connect to Azure Notification Hub

我无法连接到 Microsoft Azure 通知中心来管理订阅(获取注册和发送通知)。我有一个简单的 C# 控制台工具并执行 NotificationHubClient 方法时出现异常:(401) Not Allowed..TrackingId:****uid_here*****

使用 Fiddler 时,我收到以下原始错误消息: HTTP/1.1 401 40103: 无效授权令牌签名

我正在使用具有正确连接字符串(完全共享访问)和 WindowsAzure.ServiceBus v4.0.0 的程序集 Microsoft.Azure.NotificationHubs v2.16.0.0。我从 azure manage portal 复制了准确​​的连接字符串,我也尝试连接 ServiceBusExplorer,但这是不可能的,使用这个工具我有错误:

Receivera:InternalServiceFault由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或 配置行为)以便将异常信息发送回客户端,或者根据 Microsoft .NET Framework 打开跟踪SDK 文档并检查服务器跟踪日志。

有人遇到这种麻烦吗?

谢谢!

更新: 谢谢你们。这是一个连接字符串问题。错误是 SharedAccessKeyName。当前的默认名称是 DefaultFullSharedAccessSignature,我的初始密钥 RootManageSharedAccessKey 不再起作用。我认为它可以被 azure 改变。它不接受与根密钥的连接...或者由于其他原因被其他人更改。

您的服务总线连接字符串必须包含通知中心名称:

Endpoint=sb://my-notification-bus.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=MySharedAccess;EntityPath=my-hub-name

根据您的描述,我构建了我的控制台应用程序,安装了 Microsoft Azure Notification Hubs 1.0.7 并从 Azure 管理门户获取了连接字符串来测试此问题。它在我这边可以按预期工作,这是代码片段,您可以参考它:

NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("{connection-string-with-full-access}", "{your-notification-hub-name}");
await hub.SendWindowsNativeNotificationAsync("{your-Windows-native-payload}");

有关更多详细信息,您可以关注此官方document关于从后端发送推送通知。