我的客户端是运行在框架4.5.1上的WebForm (使用Microsoft.ServiceBus 1_1 ),我的服务器是运行在azure上的.netcore。
servicebus在azure上运行。
我的问题是在客户端运行时开始的,试图连接到订阅者,但得到了一个异常,因为订阅者还不存在(这是一个有效的场景,因为服务器可能还没有发送通知)。
因此,我尝试检查是否存在订阅者,如果不存在,则创建订阅者。当我尝试从客户端创建订阅时,它给我一个错误:传入的请求未被识别为名称空间策略put请求。
从服务器创建订阅是可行的。
客户端代码:
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);有什么想法吗?感谢所有的帮手
发布于 2019-07-29 06:00:48
对于任何面临同样问题的人来说,似乎有不止一个原因,但在我的情况下,主题还没有创建。
因此,诀窍是在继续之前确保主题已经就位。
https://stackoverflow.com/questions/55275649
复制相似问题