我的asp.net mvc 4应用程序不发送/发布到rabbitmq
本文关键字:rabbitmq net asp mvc 应用程序 我的 | 更新日期: 2023-09-27 18:27:03
我有一个应用程序,一个asp.net mvc 4应用程序。我想和easynetq一起使用rabbitmq。在我的本地电脑上,它运行得很好。但在windows服务器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"});
};
...
}
提前感谢
不要把它放在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();
}