无法使用CreateTopicAsync在ServiceBus中创建新主题

时间:2018-09-17 09:07:24

标签: c# azure servicebus

我正在尝试使用库Microsoft.Azure.ServiceBus.Management的CreateTopicAsync方法创建一个新的Topic(然后是一个订阅)。 连接字符串正确,如果通过Azure门户创建主题,则可以发送和接收消息。 我究竟做错了什么?任何帮助表示赞赏。

var managementClient = new ManagementClient(ServiceBusConnectionString);
bool topicExists = await managementClient.TopicExistsAsync(TopicName).ConfigureAwait(false);
if (!topicExists) {
    TopicDescription td = new TopicDescription(TopicName);
    td.MaxSizeInMB = 1024;
    td.DefaultMessageTimeToLive = new TimeSpan(2, 0, 0, 0);
    await managementClient.CreateTopicAsync(td).ConfigureAwait(false);
}

1 个答案:

答案 0 :(得分:0)

尽管Service Bus ConnectionString可能是正确的,但要使您的应用程序能够创建主题,它需要具有var senderbitcoinvalue; var formbitcoinamount; var formbitcoinuid; var subtractbitcoin; var passbitcoin; var passbrecevier; var divisionbitcoin; document.getElementById("sendbitcoin").addEventListener("click", function() { //form values formbitcoinamount = document.getElementById("bitcoinamount").value; formbitcoinuid = document.getElementById("bitcoinuid").value; var senderbitcoinvalue = firebase.database().ref().child("users").child(uid).child("bitcoin"); senderbitcoinvalue.on('value', function(databasesnapshot) { //pass bitcoin passbitcoin = databasesnapshot.val(); }); var reciverbitconvalue = firebase.database().ref().child("users").child(formbitcoinuid).child("bitcoin"); reciverbitconvalue.on('value', function(databasesnapshot122) { //pass bitcoin passbrecevier = databasesnapshot122.val(); }); if (passbitcoin > formbitcoinamount) { subtractbitcoin = passbitcoin - formbitcoinamount; // put subtracted amount on sender value var senderbitcoinsub = firebase.database().ref(); senderbitcoinsub.child("users").child(uid).child("bitcoin").set(subtractbitcoin); //reciver value alert(passbrecevier); alert("Your amount successfully been transferred"); return; } else { alert("You dont have enough Bitcoins"); } }); 权利(声明)。

取自Service Bus access control with Shared Access Signatures

  

对于每个授权策略规则,您需要确定三项信息:名称,范围和权限。名字就是这样;在该范围内的唯一名称。范围很容易:它是所讨论资源的URI。对于服务总线名称空间,范围是完全限定的域名(FQDN),例如https://.servicebus.windows.net/。

     

策略规则赋予的权利可以是以下各项的组合:

     
      
  • “发送”-授予向实体发送消息的权利
  •   
  • “收听”-赋予收听(中继)或接收(队列,订阅)以及所有相关消息处理的权利
  •   
  • “管理”-授予管理名称空间拓扑的权利,包括创建和删除实体
  •   
     

“管理”权限包括“发送”和“接收”权限。