我正在使用.NET Core 3.0在VS 2019中使用MVC应用程序,我需要在我的应用程序中包含Service worker
在Startup类中添加以下行之后:
< br />
我收到此错误:
我需要知道是否可以使用MVC应用程序中可用的服务,以及如何解决此问题。
答案 0 :(得分:1)
可能有很多原因。一些建议(在.NET Core的早期版本中)建议将托管模型从进程内更改为进程外,例如this known issue。您可以阅读有关托管模型here的更多信息。在您的情况下,可能还有其他事情。
现在,Microsoft提供了一些很好的示例,说明如何实现例如编写的托管服务。 here和here。但是,如何(何时)注册该服务也很重要。
在我的情况下,后台服务在其构造函数中使用了IServiceProvider
依赖注入,这就是为什么它在我注册该服务的那一行上确实很重要-可能是由于某些内部依赖性,我并未真正弄清楚。像这样在Program.cs中注册解决了我的问题:
.ConfigureServices(services =>
{
services.AddHostedService<YourAwesomeBackgroundService>();
});
如果这样做的话,您可能可以在Startup.cs的ConfigureServices
方法中尝试注册的顺序(基于依赖关系),或者尝试删除一些依赖关系以找出导致问题的原因。
如果这不能解决您的问题,我建议您打开某些日志记录服务,因为必须抛出一些异常。