相关疑难解决方法(0)

应用程序池的回收会杀死 Kestrel 但不会重新启动

背景

在 IIS 8+ 上托管(非核心)ASP.net 站点时,可以利用IIS 应用程序初始化模块在 IIS 启动时主动初始化(“预热”)Web 应用程序(或者,我相信,当应用程序池被回收时)。据我所知,在 IIS 上托管 .net Core 应用程序时这是不可能的。

我还注意到,在 IIS 上托管 .net Core (1.1) 应用程序时,dotnet.exe进程 (Kestrel) 作为应用程序池回收事件的一部分被终止。此过程仅在发出第一个新请求时才重新启动。

我问以下问题是因为我正在使用 Hangfire (Core) 和一个经常性的后台作业,并且希望在没有人长时间访问该站点时仍然执行该作业。

问题

  1. 在 IIS 上托管核心应用程序时,使用计划的应用程序池回收功能有什么意义吗?我能找到的唯一参考是 Github repo 上的一个问题

  2. 如果是这样,是否可以在应用程序池回收后自动初始化站点或启动 Kestrel(通常默认情况下每 29 小时发生一次)。

iis hangfire kestrel-http-server asp.net-core asp.net-core-2.0

8
推荐指数
0
解决办法
1668
查看次数

我如何在IIS中托管.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操作?谢谢。

.net iis asp.net-core

4
推荐指数
1
解决办法
2325
查看次数