当前设置


我们目前正在部署ASP.净核心产品:

  • Windows Server 2016
  • 托管在IIS版本10.0.14393.0上

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

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

IIS Structure

IIS Structure of child Apps in Site

问题所在


我们在CI/CD中使用Jenkins,这是无法更改的.我们有Powershell脚本与IIS交互

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

我们试图通过停止与应用程序关联的WebAppPool,然后等待(2分钟..然后5分钟)来实现这一点.但即使在那之后,应用程序文件仍然被锁定.

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

I know there has to be a better way to do this. How can we shut down an individual app, and prevent new requests from reaching it so we can replace the files and then restart it? All while the "SITE" and any other App under it not being updated is still running. I don't mind down time for the App being updated.

Update 6/8/2022

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

看看这能不能解决我的问题.

推荐答案

正在脱机添加名为app\u的文件.应用程序根文件夹中的htm应强制ASP.NET核心模块关闭应用程序并停止处理传入请求.

.net相关问答推荐

为什么在WinForm应用程序中创建组件类椭圆会在www.example.com中没有响应

找不到包Microsoft.VisualStudio.Azure.Containers.Tools.Targets

在计算Total毫秒时,.NET TimeSpan类中是否存在错误?

在平板电脑上运行我的 Angular 13 和 .Net Api 项目时,它不会向 api 输入请求

如何将 select 语句详细信息提取到不同的方法中仍然保持Eager 加载?

EFCore.DbSet.Update 方法添加新行而不是更新它

如何使用 awslocal 通过 localstack 中的 cloudwatch events/eventbridge 触发 lambda

Erlang 的让它崩溃的哲学 - 适用于其他地方吗?

关于在 .NET 中干净地终止线程的问题

在 C# 中将字节数组保存为磁盘上的文件的最有效方法是什么?

AutoMapper 的替代品

您是否使用 TestInitialize 或测试类构造函数来准备每个测试?为什么?

Automapper:使用 ReverseMap() 和 ForMember() 进行双向映射

静态代码块

等待 Async Void 方法调用以进行单元测试

如何防止任务的同步延续?

为 webClient.DownloadFile() 设置超时

在 .NET 中乘以时间跨度

C# 应用程序中的资源和嵌入式资源有什么区别?

连接字符串而不是使用一堆 TextBlocks