我在一个安装了最新版WindowsAzure.ServiceBus NuGet软件包的简单控制台应用程序中运行以下代码:
var connectionString = "Endpoint=sb://<servername>/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<SharedAccessKey>";
var queueName = "TestQueue";
var ns = NamespaceManager.CreateFromConnectionString(connectionString);
if (!ns.QueueExists(queueName))
ns.CreateQueue(queueName);
并收到以下错误:
System.UnauthorizedAccessException was unhandled
HResult=-2147024891
Message=The remote server returned an error: (401) Unauthorized. InvalidSignature: The token has an invalid signature. TrackingId:<GUID>_G30, SystemTracker:<MyQueue>.servicebus.windows.net
我尝试了很多不同的东西来尝试解决它,包括删除和重新创建整个命名空间。我还验证了SharedAccessKey具有适当的声明(即管理)。
早上回来继续解决这个问题后,它神秘地开始工作了,所以我想这个问题已经改变了,这里发生了什么?代码没有改变。关键没有改变。 (困惑!)
答案 0 :(得分:2)
您在TrackingId:<GUID>_G30
时遇到的错误表示网关MSFT支持小组应该能够提供帮助。命名空间管理操作正在通过HTTPS,我假设您已经打开,即没有任何阻止它。所以我的打赌是与Azure支持人员交谈,向他们提供TrackingId
,以找出网关为何拒绝您的请求。