【问题标题】:Receive service bus message queue/topics in web api在 web api 中接收服务总线消息队列/主题
【发布时间】:2026-01-26 09:45:02
【问题描述】:

我正在开发基于 azure 的微服务应用程序。我的要求是我有一个服务总线,我需要在 web api 中使用该服务总线消息。目前我通过azure函数实现,但我公司要求使用api。有可能吗?如果可以的话请教我怎么做

【问题讨论】:

  • 是的。使用IHostedServiceBackgroundService
  • 你能给我提供任何教程吗?如果我一次收到更多消息,这将如何处理?
  • 查看如何连接到ServiceBus,然后将其放入BackgroundServiceExecuteAsync 方法中。然后从ExecuteAsync 方法中轮询,直到设置CancellationToken
  • 谢谢,但我们再次使用后台服务而不是函数。那么有没有其他方法可以直接从 api 控制器调用消息?
  • 能否请您参考这个docs.microsoft.com/en-us/rest/api/servicebus/…,希望对您有帮助

标签: asp.net-core-webapi azureservicebus


【解决方案1】:

您可以创建后台服务来监听来自服务总线队列的消息。 以下是需要注意的几个关键点:

  • 在计时器上运行的后台任务。
  • 激活范围服务的托管服务。作用域服务可以使用依赖注入 (DI)。
  • 按顺序运行的排队后台任务。

应用设置:

1.  {
2.  "AppSettings": {
3.  "QueueConnectionString": "<replace your RootManageSharedAccessKey here>",
4.  "QueueName": "order-queue"
5.  }
6.  }

您可以参考c-sharpcornerblog了解分步过程。

【讨论】: