2017-02-28 56 views
0

我想以编程方式更改队列(服务总线)的访问规则的主键和辅助键(我们希望每天重新生成一次主键) 。 我想在已经创建的现有队列中执行此操作。 我知道这可以从Azure门户完成(通过单击策略窗口的“Regen prim key”和“Regen sec key”),但我没有设法从我的.Net代码中完成。以编程方式更新azure服务总线队列共享访问策略

我的代码看起来如下:

SharedAccessAuthorizationRule rule; 
      if (!queueDescription.Authorization.TryGetSharedAccessAuthorizationRule(ruleName, out rule)) 
      { 
       // error 
      } 

      rule.SecondaryKey = rule.PrimaryKey; 
      rule.PrimaryKey = SharedAccessAuthorizationRule.GenerateRandomKey(); 

,规则不改变该代码后.....

是否有另一种方式来做到这一点...?

感谢

回答

1

我知道这可以在Azure门户来完成(通过点击“雷根一本正经的关键”的政策窗口“雷根秒键”),但我没能做到它来自我的.Net代码。

请重新为您的授权规则重新生成/重置PrimaryKey后,请尝试呼叫UpdateQueue(QueueDescription) method以更新队列。你可以参考下面的示例代码。

string connectionString = "Endpoint=sb://fehanservicebustest.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey={accesskey}"; 
string queueName = "{queuename}"; 

var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString); 


QueueDescription queueDescription = namespaceManager.GetQueue(queueName); 

SharedAccessAuthorizationRule rule; 

queueDescription.Authorization.TryGetSharedAccessAuthorizationRule("fehanlistenpolicy", out rule); 

string newkey = SharedAccessAuthorizationRule.GenerateRandomKey(); 
rule.PrimaryKey = newkey; 

namespaceManager.UpdateQueue(queueDescription); 
+0

工作就像一个魅力!谢谢!! – Dafna

相关问题