对于ASP.NET(4.6)web应用程序,更改IIS虚拟目录路径是否是一种良好的无停机升级策略?

对于ASP.NET(4.6)web应用程序,更改IIS虚拟目录路径是否是一种良好的无停机升级策略?,asp.net,iis,Asp.net,Iis,单一web服务器设置。我们正在考虑在两个目录中并排设置应用程序,并在升级时在它们之间切换: 假设这两个目录是“webA”和“webB” web应用程序设置为使用其中一个,比如“webA” 现在,当我们要升级时: 我们在“webB”中设置了新版本 我们在IIS上使用单独的应用程序进行测试 准备升级时,我们将更改生产web应用程序的路径 我们假设运行的请求将在旧位置完成,所有新请求将使用新的应用程序池进程在新位置开始 这是一个好主意还是会在升级过程中给使用该应用程序的用户带来问题?最好设置两个单独的

单一web服务器设置。我们正在考虑在两个目录中并排设置应用程序,并在升级时在它们之间切换:

  • 假设这两个目录是“webA”和“webB”
  • web应用程序设置为使用其中一个,比如“webA”
  • 现在,当我们要升级时:

  • 我们在“webB”中设置了新版本
  • 我们在IIS上使用单独的应用程序进行测试
  • 准备升级时,我们将更改生产web应用程序的路径
  • 我们假设运行的请求将在旧位置完成,所有新请求将使用新的应用程序池进程在新位置开始


    这是一个好主意还是会在升级过程中给使用该应用程序的用户带来问题?

    最好设置两个单独的站点,然后使用ARR在它们之间切换。在ARR上切换流量比实际切换IIS实体(如虚拟目录)的物理路径更有效(也不太麻烦)。@LexLi因此您可以在单个服务器上使用ARR在“webA”和“webB”之间实现“负载平衡”,对吗?我认为其中一个好处是,你可以只移动一部分用户,一旦你看到“webB”运行良好,你就可以移动其余的用户……不。当你不需要时,你不需要“负载平衡”。ARR可以为您提供一个纯反向代理来路由流量,负载平衡是可选的。我认为这是版本更改的一个解决方案,但对于实际应用程序来说,这不是一个好策略。因为更改联机生产服务器的目录将是一个错误的操作。我同意建立不同的网站和反向代理。因此,当您需要将版本更改为webB时,只需更改重写规则中的{HTTP_HOST}。