【问题标题】:Client.CreateAsyncRule gives error for .netcore when I'm trying to add a new rule to newly created subscription当我尝试向新创建的订阅添加新规则时,Client.CreateAsync 规则为 .net 核心提供错误
【发布时间】:2018-10-11 15:21:35
【问题描述】:

我在 .netcore Framework 中有一个验收项目,我在其中创建一个新订阅并使用 Microsoft.Azure.ServiceBus 参考的支持类添加一个新规则。后来我收到来自同一个订阅的消息。

问题陈述: 在创建新订阅之前,我使用 client.DeleteSubscriptionAsync 删除了旧订阅,我在调试订阅时已验证是否已正确删除。 然后我使用 client.CreateSubscriptionAsync(new SubscriptionDescription(TopicName, sub)).Result; 创建一个新订阅,使用默认规则 1=1 创建一个新订阅。 然后我尝试使用 client.DeleteRuleAsync(TopicName, subscriptionDetails.SubscriptionName, "$Default");

删除默认规则

我在调试时验证了规则被正确删除。

最后我使用 client.CreateRuleAsync(TopicName, sub, new RuleDescription("Rule1", new SqlFilter("XYZ"))).Result;

创建了一个新规则

在此语句执行结束之前,我收到一条错误消息,指出 "Rule1" 已经存在 并且我的测试失败,但奇怪的是语句创建了规则并以某种方式将错误抛出为出色地。不知道为什么会这样!

免费提供建议!

【问题讨论】:

    标签: c# .net-core azure-servicebus-topics


    【解决方案1】:

    问题已解决,似乎 client.CreateRuleAsync 扫描整个主题是否存在具有相同名称的规则(例如 Rule1),而不是仅扫描订阅,如果找到具有相同名称的类似规则,则抛出异常并且执行失败。更改特定条件的规则名称解决了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多