【发布时间】: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