我的客户端是运行在框架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);
有什么主意吗? 感谢所有帮助者
答案 0 :(得分:0)
对于面临相同问题的任何人,似乎可能有多个原因,但就我而言,该主题尚未创建。
所以诀窍是在继续进行之前确保主题就位。