我在 Windows Server 2016 上使用 IIS,版本 10。
当我部署一个新的 Web 应用程序时,它位于“站点”下,组织如下:
ServerNameA,然后是几个站点,包括使用 ApplicationPoolA 的 MySiteA。
成功部署后,我可以验证这些文件是新的。
Web 应用程序专门是一个使用 .NET Framework 4.5.2 的 Web 服务,最初是在 Visual Studio 2019 中构建的。
我将 IIS 与基于 GUI 的Internet 信息服务 (IIS) 应用程序一起使用。因此,这是一个基于 Windows 的过程,而不是一个面向脚本的方法。
我想要的是确保网站实际运行新文件而无需重新启动甚至重新启动所有 IIS。
*通常,我执行以下过程,在 IIS 中执行以下步骤:*
从站点下网站的上下文菜单刷新 MySiteA
停止应用程序池 A
启动应用程序池A
从站点下网站的上下文菜单刷新 MySiteA
我假设网站上的一个或两个“刷新”命令是多余的,或者可能只需要刷新。
保证使用新的部署文件所需的 IIS 上的最少过程(步骤集)是什么?
可以假设部署本身是成功的并且所有需要的文件都在那里。
回收(即重新启动)应用程序池应该足以让它拾取新部署的文件。
这可以使用 PowerShell 轻松完成:https ://learn.microsoft.com/en-us/powershell/module/webadministration/restart-webapppool
相关问题:https ://stackoverflow.com/questions/38311797/recycle-an-application-pool-using-a-powershell-script 。
由于您正在使用 ASP.NET 4.x(和 ASP.NET Core),最方便的方法是使用
app_offline.htm
触发完全重新加载 Web 内容,Microsoft 对此进行了详细记录,https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/app-offline?view=aspnetcore-7.0