我正在创建示例Azure Service Bus应用程序。我创建了一个名称空间,主题和订阅。我已经为主题编写了测试消息,如果我在门户网站上进行订阅,我会看到每次使用编写器应用程序编写新消息时都会收到新消息。
但是当我去拉消息时,没有检索到任何内容。在故障排除中,我将订阅名称更改为不正确的值并收到错误。我改回来了,没有输出,当我查看Azure门户时,没有删除任何消息。我被困了......这看起来很容易,但它不起作用。
string connectionString = "Endpoint=sb://redacted for obvious reasons";
SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(connectionString, "NewOrders", "AllOrders");
// Configure the callback options.
OnMessageOptions options = new OnMessageOptions();
options.AutoComplete = false;
options.AutoRenewTimeout = TimeSpan.FromMinutes(1);
Client.OnMessage((message) =>
{
try
{
Console.WriteLine("Body: " + message.GetBody<string>());
message.Complete();
Console.ReadLine();
}
catch (Exception)
{
// Indicates a problem, unlock message in subscription.
message.Abandon();
}
}, options);
答案 0 :(得分:1)
似乎不是代码问题。我创建了一个演示来从主题中检索消息,它可以正常工作。 在我尝试从主题中检索消息之前,我将消息发送到主题或确保有订阅消息。我们可以从门户网站上查看
发送消息代码演示。
where
bed.patient_id = pat.patient_id
我也尝试了你提到的代码,它也适用于我。
我们也可以从模板中获取云项目的演示项目。我们还可以从文档中获取有关How to use Service Bus topics and subscriptions的更多信息。