Зачем вам нужно прослушивать события в веб-приложении?
Вместо этого напишите службу Windows, используя topshelf и masstransit в качестве клиента rabbitmq.
Вы можете подключиться к rabbitmq и зарегистрировать получателей запросов в Program.cs, как показано ниже:
IBusControl busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
IRabbitMqHost host = cfg.Host(new Uri(RabbitMQConstants.RabbitMQUri),
hst =>
{
hst.Username(RabbitMQConstants.RabbitMQUserName);
hst.Password(RabbitMQConstants.RabbitMQPassword);
});
cfg.ReceiveEndpoint(host,
RabbitMQConstants.YourQueueName,
endPointConfigurator => { endPointConfigurator.Consumer<SomeConsumer>(); });
});
И запустить конфигуратор шины:
busControl.Start();
Пример потребителя:
public class SomeConsumer :
IConsumer<YourMessageClass>
{
public async Task Consume(ConsumeContext<YourMessageClass> context)
{
await Console.Out.WriteLineAsync($"Message consumed: {context.Message.YourValue}");
}
}
Для получения дополнительной информации и примера взгляните на официальную документацию по masstransit: http://masstransit -project.com / MassTransit / использовании / message-consumer.html