我已通过证书配置授权。当我使用NamespaceManager来GetSubscription工作正常,但是当我尝试从MessagingFactory执行任何方法时,我收到System.UnauthorizedAccessException。
string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
SubscriptionDescription subscriptionDescription = namespaceManager.GetSubscription("testTopic", "testSubscription"); // executed properly
var messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
var exist = namespaceManager.TopicExists("TestTopic"); // throws exception
堆栈追踪:
System.UnauthorizedAccessException was unhandled
HResult=-2147024891
Message=The remote server returned an error: (401) Unauthorized. Authorization failed for specified action: Manage..TrackingId:d8648c5a-5185-41c8-b787-72332403b7d9_*******,TimeStamp:2014-07-14 08:34:22
Source=Microsoft.ServiceBus
问题是什么?
答案 0 :(得分:1)
要使用NamespaceManager,您必须位于Service Bus命名空间中的ManageUsers中。要将用户添加到现有命名空间,您可以使用ps Set-SBNamespace
答案 1 :(得分:1)
您必须位于Service Bus命名空间或中的ManageUsers列表中,并具有授权规则,该规则为您提供了获取订阅主题的管理权限。