使IIS中的ASP.NET Core应用始终保持运行

时间:2019-08-16 11:32:52

标签: asp.net-core iis .net-core asp.net-core-webapi

我正在IIS中托管一个ASP.NET Core(2.2)应用程序。

该应用程序正在使用具有以下设置的自定义应用程序池:

.NET CLR version: No Managed Code
Start Mode: Always Running
Idle Time-out (minutes): 0

我的启动代码如下:

WebHost.CreateDefaultBuilder(args)
  .UseStartup<MyStartup>() 
  .Build() 
  .Run();

我希望该应用程序将始终运行,但是一段时间后,低于以下要求,该应用程序将停止运行:

  

[Microsoft.AspNetCore.Hosting.Internal.WebHost]请求开始   HTTP / 1.1开机自检   http://127.0.0.1:43745/app/iisintegration 0   [Microsoft.AspNetCore.Hosting.Internal.WebHost]请求完成于   5.7107ms 202

该应用是子应用。父应用程序正在使用其他应用程序池,并且确实有空闲超时。

是否缺少某些设置来使应用程序始终保持运行状态?

1 个答案:

答案 0 :(得分:0)

找到了有效的解决方案。您需要使用进程内托管模型来托管ASP.NET Core 2.2应用程序。可以按照以下步骤进行操作。

  1. 安装应用程序初始化模块(IIS)

服务器管理器>添加角色和功能>服务器角色> Web服务器(IIS)>应用程序开发>应用程序初始化

  1. IIS>您的应用程序池>启动模式>始终运行

  2. IIS>您的应用程序池>空闲超时> 0

  3. IIS>您的应用>高级设置>启用预加载> True

  4. 为进程内托管模型设置应用(Asp.net核心模块的web.config更改以及设置正确的当前目录的代码更改)

更多信息,请访问: