无法使用Framework 4.5.1中的Azure ServiceBus主题

时间:2019-03-21 07:36:17

标签: servicebus

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

servicebus在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);

有什么主意吗? 感谢所有帮助者

1 个答案:

答案 0 :(得分:0)

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

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