Мое приложение asp.net mvc 4 не отправляет / не публикует rabbitmq
У меня есть приложение, приложение asp.net MVC 4. Я хочу использовать rabbitmq с easynetq. В моем локальном компьютере это работает отлично. Но в производственной среде, которая является Windows Server 2012, он не отправляет никаких сообщений.
Я не мог понять, почему это не работает. В сообщении журнала ничего необычного. IIS и rabbitmq находятся в одной машине.
protected void Application_Start()
{
...
using (var bus = RabbitHutch.CreateBus("host=localhost"))
{
bus.Publish(new SystemLog() { Code = "startapplication", Message = "nomessage" });
}
...
}
void Session_End(object sender, EventArgs e)
{
...
using (var bus = RabbitHutch.CreateBus("host=localhost"))
{
bus.Publish(new SystemLog() { Code = "sessionends", Message = "somenumber"});
};
...
}
заранее спасибо
1 ответ
Решение
Не помещайте его в оператор using, который будет удалять экземпляр шины сразу после завершения запуска, вы хотите сохранить этот экземпляр в течение всего срока службы вашего приложения.
Вместо этого сохраните экземпляр где-нибудь (как статическая переменная) и поместите его в событие application_end, а не session_end.
Итак, больше похоже на это:
protected void Application_Start()
{
_bus = RabbitHutch.CreateBus("host=localhost"))
_bus.Publish(new SystemLog() { Code = "startapplication", Message = "nomessage" });
}
void Session_End(object sender, EventArgs e)
{
_bus.Publish(new SystemLog() { Code = "sessionends", Message = "somenumber"});
}
protected void Application_End()
{
if(_bus!=null)
_bus.Dispose();
}