我如何在IIS中托管.Net Core网站以立即启动?

Eri*_*ric 4 .net iis asp.net-core

这篇博客文章解释了如何在IIS中托管.Net Core网站时,在第一个请求进入IIS之前,该网站代码实际上不会运行:

https://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS

这正是我所看到的行为,一旦第一个请求进入,一切便开始运行。我有一个用例,我真的需要在IIS启动后立即启动网站代码。有没有一种方法可以从网站内部以编程方式执行此操作,或者在配置中使用某些方法,因此我不必记住每次IIS重新启动时都要对我的网站执行ping操作?谢谢。

Eri*_*ric 5

我尝试了所读到的每个自动启动选项,最后想出了一个可以解决问题的组合。在应用程序池上,将“启动模式”设置为“ AlwaysRunning”,在网站本身上,将“启用预加载”设置为“ true”。使用这两个设置,应用程序将立即启动。现在,我确实发现了意外情况。网站处于停止状态时,我的应用程序继续运行。我发现,如果我想停止我的应用程序,则必须停止应用程序池,而不是网站。

如果这不起作用,则还应确保为IIS安装了应用程序初始化功能,因为它是可选的。

https://docs.microsoft.com/zh-cn/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization

  • 由于某种原因对我不起作用。(已安装应用程序初始化功能、Windows Server 2012 R2、ASP.NET Core 3.0、进程内托管) (2认同)
  • 与@Mike一样,使用ASP.NET Core 3.0,安装了应用程序初始化功能,应用程序池具有AlwaysRunning启动模式,站点已启用了预加载。web.config也启用了预加载。重新启动机器没有帮助。 (2认同)