IIS——确保新部署的 Web 应用程序版本是实际使用的版本的过程

IIS——确保新部署的 Web 应用程序版本是实际使用的版本的过程

我在 Windows Server 2016 上使用 IIS 版本 10。

当我部署新的 Web 应用程序时,它会进入“站点”下,其组织如下:

ServerNameA,然后是几个站点,包括使用 ApplicationPoolA 的 MySiteA。

部署成功后,我可以验证文件是新的。

该 Web 应用程序是一个使用 .NET Framework 4.5.2 的 Web 服务,最初在 Visual Studio 2019 中构建。

我正在使用 IIS基于 GUIInternet 信息服务 (IIS) 应用程序。因此,这是一个基于 Windows 的过程,不是以脚本为导向的方法。

我想要的是确保网站真正运行新文件,而无需重新启动甚至重新启动整个 IIS。

*通常,我会在 IIS 中执行以下步骤:*

  • 从网站中的站点上下文菜单刷新 MySiteA

  • 停止应用程序池A

  • 启动应用程序池A

  • 从网站中的站点上下文菜单刷新 MySiteA

我认为网站上的一个或两个“刷新”命令都是多余的,或者刷新就是所需要的全部。

是什么最低限度需要在 IIS 上执行哪些过程(步骤集)来保证使用新的部署文件?

我们可以假设部署本身是成功的,并且所有需要的文件都已存在。

答案1

回收(即重新启动)应用程序池就足以让它获取新部署的文件。

使用 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

答案2

由于你正在使用 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

$pathToApp = '{PATH TO APP}'


New-Item -Path $pathToApp -Name "app_offline.htm" -ItemType "file"

# Provide script commands here to deploy the app

Remove-Item -Path $pathToApp\app_offline.htm

相关内容