我有带 IIS 的 Win Server 2016,所有更新均已应用。在更新正在运行的网站时,我将一个app_offline.htm
文件放入应用程序文件夹中以关闭应用程序池。
对于单个特定应用程序,将文件放在那里不会停止应用程序。我需要打开任务管理器,将其终止一次,然后重新启动(其中有 app_offline 文件),网站仍正常打开,然后我第二次关闭它,然后它将保持停止状态以进行更新。
此应用是为单个工作进程设置的,没有重叠的工作进程,也就是说,只有在第一个工作进程完成后,新进程才会启动。此特定应用在关闭期间运行一些代码,可能需要几秒钟才能运行,这可以解释为什么它不会立即关闭,但无法解释为什么在终止池进程后,即使文件在那里,它也会重新启动。
有任何想法吗?
答案1
问题在于应用程序的默认关机限制,默认情况下记录为 10 秒,但显然花费的时间更长。通过在 web.config 中明确设置值,应用程序最多会在 10 秒后关闭,这让我不得不调查为什么应用程序之前没有关闭,但至少 app_offline.htm 在这一更改后可以按预期工作:
<system.webServer>
<aspNetCore ... shutdownTimeLimit="10" />
</system.webServer>