c# - 如果托管在 IIS 上,ASP.NET 核心应用程序不会使用来自 RabbitMQ 队列的消息
问题描述
设置
本地主机上的 RabbitMQ,asp.net 核心应用程序使用 IIS 上的 masstransit lib 消耗事件。
问题
RabbitMQ 队列中有消息,当我的 asp.net 核心应用程序托管在 IIS 上时,它不会使用它,而且,它在 RabbitMQ 管理的队列详细信息中作为消费者不可见。但是,当我“dotnet 运行”它或在 IIS Express 上运行它时,它会消耗消息并且作为消费者可见。
代码
Startup.cs 片段
...
services.AddMassTransit(x =>
{
x.AddConsumer<EventConsumer>();
x.UsingRabbitMq((context, cfg) =>
{
cfg.Host("localhost", c =>
{
c.Username("username");
c.Password("password");
});
cfg.ReceiveEndpoint("queue-name", e =>
{
e.ConfigureConsumer<EventConsumer>(context);
});
});
});
services.AddMassTransitHostedService();
...
EventConsumer.cs
public class EventConsumer : IConsumer<Event>
{
private readonly ILogger<EventConsumer> _logger;
public EventConsumer(ILogger<EventConsumer> logger)
{
_logger = logger;
}
public async Task Consume(ConsumeContext<Event> context)
{
var message = context.Message;
}
}
提前感谢所有回复。
解决方案
推荐阅读
- python - 如何在自定义 Keras 损失中将 softmax 输出转换为 one-hot 格式
- ios - iOS 中的 Twilio 语音通话问题
- angular - 如何深入了解两个出口?
- javascript - 将 Observable 转换为 Promise
- reactjs - 我们如何关闭 office react fabric 组件的错误消息栏?
- python - 如何在 API 中动态地给用户输入?
- editor - 我的 emmet 原子片段无法正常工作
- django - Django:在电子邮件中添加下载链接
- swift - 从特定的核心数据表行中检索值 - 然后将值存储到 UserDefaults
- javascript - 得到
- 点击元素 - vanilla JS