我在 IIS 中托管的 ASP.NET Web 应用程序中使用 MassTransit。
看来,当我停止应用程序池时,应用程序正在停止,Azure 服务总线已停止,但最后尝试停止的是 MassTransit.MassTransitHostedService 抛出 InvalidOperationException。
“'MassTransit.MassTransitHostedService' 类型仅实现 IAsyncDisposable。使用 DisposeAsync 处理容器”
堆栈跟踪: 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.SerivceProviderEngineScope.Dispose() 在 Microsoft.AspNetCore.Hosting.Internal.WebHost.Dispose()
环境:
看起来当应用程序关闭时,DI 服务是同步处理的,但“MassTransit.MassTransitHostedService”仅实现“IAsyncDisposable”。
有人遇到过这样的问题吗?有没有办法告诉主机异步处理服务?
更新 1:
IWebHost 使用的是 Microsoft.AspNetCore.Hosting.Abstractions v2.2,这是最新版本。该接口仅派生自“IDisposable”。由于某些要求,我无法将目标框架升级到 3.0 及更高版本。