gpt4 book ai didi

.net - IIS 在不关闭 IIS 网站的情况下发布 ASP.NET Core 应用程序

转载 作者:行者123 更新时间:2023-12-02 15:50:49 24 4
gpt4 key购买 nike

当前设置


我们目前将 ASP.NET Core 产品部署到:

  • window 服务器 2016
  • 托管在 IIS 版本 10.0.14393.0 上

我们有一个“站点”,下面有多个应用程序。每个应用程序都使用自己的应用程序池,并映射到不同的物理文件夹路径位置。

每个应用程序都由其自己的源代码 ASP.NET Core Server 项目表示

IIS 结构

IIS Structure of child Apps in Site

问题


我们将 Jenkins 用于 CI/CD,这一点无法更改。我们有与 IIS 交互的 Powershell 脚本

没有用于停止应用程序的 IIS 命令,只有一个站点,但理想情况下,我们不希望在发布单个应用程序的新版本时关闭该站点。我们只想关闭该特定应用程序。

我们通过停止与应用程序关联的 WebAppPool,然后等待(2 分钟......然后 5 分钟)来尝试此操作。但即便如此,应用程序文件仍处于锁定状态。

我们最终关闭了 WebAppPool 和站点以释放文件以便替换它们。

我知道必须有更好的方法来做到这一点。我们如何关闭单个应用程序,并阻止新请求到达它,以便我们可以替换文件然后重新启动它? “SITE”及其下的任何其他未更新的应用程序一直在运行。我不介意应用程序更新的停机时间。

2022 年 6 月 8 日更新

找到这个:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/app-offline?view=aspnetcore-6.0

去看看能不能解决我的问题。

最佳答案

在应用程序的根文件夹中添加一个名为 app_offline.htm 的文件应该会强制 ASP.NET Core 模块关闭应用程序并停止处理传入的请求。然后,您应该能够在不影响其他应用程序的情况下部署新文件。

关于.net - IIS 在不关闭 IIS 网站的情况下发布 ASP.NET Core 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72548399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com