如何解决如果托管在IIS上,则ASP.NET Core应用程序不使用RabbitMQ队列中的消息
设置
使用IIS上的masstransit lib的asp.net核心应用程序localhost上的RabbitMQ,它消耗事件。
问题
RabbitMQ队列中有消息,当我的asp.net核心应用程序托管在IIS上时,它也不会使用它,而且,在RabbitMQ Management的队列详细信息中,它不视为使用者。但是,它消耗消息,并且当我“ 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;
}
}
提前感谢所有回复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。