4

我必须实现一个 asp.net web api,它充当 rabbitMQ 的订阅者。Windows 服务将向 Web api 服务发布消息。在生产环境中将运行不止一个 web api 实例。我不确定如何在 web api 上打开订阅者通道并保持打开状态,直到 IIS 重新启动。将有一个发布者和几个消费者。

任何人都可以用一些示例代码来指导吗?

任何帮助将不胜感激

4

1 回答 1

8

通常,RabbitMQ 订阅不适用于 IIS 托管应用程序,因为您无法控制应用程序何时运行。IIS 将在它认为合适的时候回收、停止和启动应用程序。

如果必须这样做,请打开到 RabbitMQ 的连接并在应用程序启动时开始订阅,例如在 Global.asax.cs 中,并确保在关闭时正确处理所有内容。

您最好为订阅构建一个 Windows 服务,或者写入 IIS 托管的 Web 服务可以访问的共享存储,或者在 Windows 服务中自托管 API。

于 2014-08-29T15:38:49.023 回答