我的一个.net core WebHost应用,使用到BackgroundService,部署在了IIS中,需要一启动就开始运行,且保持运行。

但是发现IIS中的应用,只有在接收到第一个请求后,才会开始启动。
而且发现如果一段时间没有请求,IIS会自动杀掉该应用。

参考这篇文章,得到了初步的解决方案。

大致概括如下:

  1. 使能应用初始化模块( Server Roles -> Web Server -> Application Developer -> Application Initialization)。另:我发现仅windows server版本有这个功能。
  2. 应用程序池,高级设置,自动启动设为True,进程模型中的闲置超时设为0,我测试后发现这条不需要:(文章还要求把.net framework版本设置为4.0,否则这些设置没有效果)。
  3. 网站的高级设置中,同样把自动启动设置为True。

如此做,应用程序在IIS启动时,就会自动被启动,且不会因为闲置而被杀掉。

不过目前碰到问题是,启动时,会报IISHttpServer.HandleRequest中的异常,可能与第一步中的初始化请求模块有关,该模块模拟了HTTP请求,但是未被正常处理。

不过目前问题暂时解决了。

相关文章:

  • 2021-12-06
  • 2021-10-12
  • 2022-12-23
  • 2021-05-17
  • 2022-02-25
  • 2021-04-10
  • 2021-06-25
猜你喜欢
  • 2022-03-03
  • 2022-12-23
  • 2021-08-25
  • 2022-03-02
  • 2019-03-15
  • 2022-01-23
相关资源
相似解决方案