我想將 MassTransit Consumer 添加到 Asp.net Framework (.net 4.8) Web 應用程式。我沒有看到任何使用 .net framework 的示例,所有示例都指向 .NET Core。
.net Framework (.net 4.8) 中的 MassTransit 是否支持此功能。這個長時間運行的呼叫會被 IIS 殺死嗎?
我的 Global.asax.cs 示例代碼
public class MvcApplication : System.Web.HttpApplication
{
static IBusControl _bus;
static BusHandle _busHandle;
public static IBus Bus
{
get { return _bus; }
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
_bus = MassTransit.Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.Host(new Uri(ConfigurationManager.AppSettings["RabbitMQHost"]), h =>
{
h.Username("admin");
h.Password("admin");
});
cfg.ReceiveEndpoint(RA_Listener.RA_Listener0, e =>
{
e.Consumer<EventConsumer>();
});
});
_busHandle = MassTransit.Util.TaskUtil.Await<BusHandle>(() => _bus.StartAsync());
}
uj5u.com熱心網友回復:
如果總線無法連接到您的訊息代理,這只是一個長時間運行的呼叫。否則,它應該幾乎立即完成。因此,如果您的經紀人無法聯系到,那可能就是問題所在。
ILoggerFactory此外,如果您希望看到任何有用的日志輸出來幫助您解決任何問題,您應該配置并將其提供給 MassTransit。LogContext.ConfigureCurrentLogContext(loggerFactory);在總線配置閉包中配置日志記錄。
你可以像你所做的那樣創建總線,然后使用:
Task.Run(() => _bus.StartAsync());
它不會等待,但你也不會知道總線是否真的啟動了,因為你沒有觀察任務的結果。但是,至少它不會阻止您的啟動。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526343.html
標籤:网asp.net-mvc兔子MQ轨道交通.net-4.8
