【问题标题】:Fail using Azure ServiceBus Topic from Framework 4.5.1使用 Framework 4.5.1 中的 Azure ServiceBus 主题失败
【发布时间】:2019-03-21 07:36:16
【问题描述】:

我的客户端是在框架 4.5.1 上运行的 WebForm(使用 Microsoft.ServiceBus 1_1,而我的服务器是在 azure 上运行的 .netcore。

服务总线在 azure 上运行。

我的问题在客户端运行时开始,尝试连接到订阅者但由于订阅者尚不存在而出现异常(这是一个有效的场景,导致服务器可能尚未发送通知)。

所以,我尝试检查是否有订阅者,如果不存在则创建它。 当我尝试从客户端创建订阅时,它给了我一个错误: 传入的请求未被识别为命名空间策略放置请求。

从服务器创建订阅有效。

客户端代码:

var name = NamespaceManager.CreateFromConnectionString(serviceBusConnectionString);

        if (!name.SubscriptionExists(topicName, subscription))
        {
            SubscriptionDescription sd = new SubscriptionDescription(topicName, subscription);
            RuleDescription rd = new RuleDescription("filter1", new SqlFilter($"sys.To={subscription_managerId}"));
            name.CreateSubscription(sd, rd); // fail here
        }
        _subscriptionClient = SubscriptionClient.CreateFromConnectionString(serviceBusConnectionString, topicName, subscription, ReceiveMode.ReceiveAndDelete);

有什么想法吗? 感谢所有的帮助者

【问题讨论】:

  • 刚刚检查并且 :if (!name.SubscriptionExists(topicName, subscription)) 根本不起作用。即使订阅存在,它仍然进入括号。完全异常:{“40400:未找到端点。,资源:sb://xxxxxx.servicebus.windows.net/newdoc/subscriptions/user726。TrackingId:722db47b-2547-44df-b2ba-a9a254a3af90_G47,SystemTracker:xxxxxx.servicebus。 windows.net:newdoc/Subscriptions/user726,时间戳:2019-03-21T07:52:09"}
  • 您找到解决方案了吗?

标签: servicebus


【解决方案1】:

对于面临同样问题的任何人,似乎可能有不止一个原因,但就我而言,主题尚未创建。

所以诀窍是在继续之前确保主题到位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2023-02-17
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多