MassTransit 托管服务没有实现同步版本的处理(IDisposable)

问题描述 投票:0回答:0

我在 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()

环境:

  1. .NET 框架 4.8.
  2. Microsoft.AspNetCore.WebHost(Microsoft.AspNetCore 2.2 包)
  3. 微软DI.
  4. IIS 10.
  5. 地铁 8.0.7.

看起来当应用程序关闭时,DI 服务是同步处理的,但“MassTransit.MassTransitHostedService”仅实现“IAsyncDisposable”。

有人遇到过这样的问题吗?有没有办法告诉主机异步处理服务?

更新 1:

IWebHost 使用的是 Microsoft.AspNetCore.Hosting.Abstractions v2.2,这是最新版本。该接口仅派生自“IDisposable”。由于某些要求,我无法将目标框架升级到 3.0 及更高版本。

masstransit
© www.soinside.com 2019 - 2024. All rights reserved.