【ASP.NET Core】应用脱机文件 (app_offline.htm)

2023-09-21 10:18:00

jenkins进行CI失败是可能app_offline.htm不会被自动删除导致ASP.NET Core应用异常,发布成功后则需手动删除该文件

概述

在很多情况下,需要在对相关组件(如数据库或 Web 服务)进行更改时使 Web 应用程序脱机。 通常,在 IIS 和 ASP.NET 中,可以通过将名为 App_offline.htm 的文件放置在 IIS 网站或 Web 应用程序的根文件夹中来实现此目的。 App_offline.htm文件是标准 HTML 文件,通常包含一条简单的消息,告知用户由于维护而暂时无法使用站点。 虽然 App_offline.htm 文件存在于网站的根文件夹中,但 IIS 会自动将任何请求重定向到该文件。 完成更新后,将删除 App_offline.htm 文件,网站将照常恢复处理请求。

如果在应用的根目录中检测到名为“app_offline.htm”的文件,ASP.NET Core 模块将尝试正常关闭应用并停止处理传入请求。 如果应用在 shutdownTimeLimit 中定义的秒数之后仍在运行,ASP.NET Core 模块将停止正在运行的进程。

存在 app_offline.htm 文件时,ASP.NET Core 模块会通过发送回 app_offline.htm 文件的内容来响应请求。 app_offline.htm 必须小于 4 GB。 删除 app_offline.htm 文件后,下一个请求将启动应用。

使用进程外托管模型时,如果有已打开的连接,则应用可能不会立即关闭。 例如,WebSocket 连接可能会延迟应用关闭。

锁定的部署文件

如果应用正在运行,部署文件夹中的文件会被锁定。 在部署期间,无法覆盖已锁定的文件。

app_offline.htm 是释放锁定文件的主要机制。 app_offline.htm 供 Web 部署用于正确地停止和启动应用。

可以手动将 app_offline.htm 用于启动和停止应用(需要 PowerShell 5 或更高版本):

$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

在上述 PowerShell 脚本中:

  • 占位符 {PATH TO APP} 是指向应用的路径。
  • New-Item 命令停止应用池。
  • Remove-Item 命令启动应用池。
  • 开发人员提供 New-Item 命令和 Remove-Item 命令之间的命令来部署应用。

还可以通过在服务器上的 IIS 管理器中手动停止应用池来解锁文件。 使用 IIS 管理器停止和重新启动应用池时,请勿使用 app_offline.htm 文件。

来源

应用脱机文件 (app_offline.htm)
使用 Web 部署使 Web 应用程序脱机

更多推荐

如何压缩图片大小?图片太大这样压缩

过大的图片文件不仅会占用大量的存储空间,还会影响图片传输和处理效率。为了解决这个问题,下面给大家分享几个图片压缩的方法,帮助你轻松解决图片过大带来的困扰。一、使用嗨格式压缩大师这是一款专业的图片压缩工具,采用先进的压缩算法,能够在保证图片质量的同时,快速高效地降低图片的文件大小。1、在电脑上打开软件后,选择“图片压缩”

激活函数总结(四十):激活函数补充(AHAF、SERLU)

激活函数总结(四十):激活函数补充1引言2激活函数2.1AHAF激活函数2.2SERLU激活函数3.总结1引言在前面的文章中已经介绍了介绍了一系列激活函数(Sigmoid、Tanh、ReLU、LeakyReLU、PReLU、Swish、ELU、SELU、GELU、Softmax、Softplus、Mish、Maxout

MySQL使用Xtrabackup备份到AWS存储桶

1.安装Xtrabackupcd/tmpwgethttps://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80

【山河送书第十二期】:《巧用ChatGPT快速搞定数据分析》参与活动,送书两本!!

【山河送书第十二期】:《巧用ChatGPT快速搞定数据分析》参与活动,送书两本!!关键亮点内容简介作者简介购买链接参与方式往期赠书回顾关键亮点用ChatGPT颠覆数据分析,1分钟生成数据分析结果!30多个精心挑选的ChatGPT数据分析案例+50多种ChatGPT数据分析策略涵盖从数据预处理到高级分析的全过程助你在竞争

【Python】pyecharts 模块 ② ( 命令行安装 pyecharts 模块 | PyCharm 安装 pyecharts 模块 )

文章目录一、命令行安装pyecharts模块1、安装过程2、命令行验证pyecharts模块是否安装成功二、PyCharm安装pyecharts模块1、通过错误提示安装2、在Settings设置界面安装pyecharts画廊网站:https://gallery.pyecharts.org/#/在该网站可查看官方示例一、

SAP服务器文件管理

SAP服务器文件管理文件说明:对于SAP服务器的文件管理,系统给出3个事物码,分别是显示目录的AL11,下载文件的CG3Y和上传文件的CG3Z。AL11显示目录:以查找系统参数文件为例,在前台执行事物码AL11进入,如图所示,这里显示的是根目录列表,在此找到DIR_SETUPS条目。右边显示相应目录,用鼠标点击进入。此

操作系统之——中断

一.概念铺垫1.操作系统在了解中断之前,我们先来了解一下操作系统.🫡首先,操作系统是一种软件,它控制和管理计算机硬件和软件资源,为用户和应用程序提供统一的接口和环境。它负责管理计算机的内存、文件系统、输入输出设备、进程调度、网络通信等功能。操作系统使得计算机可以高效地运行各种应用程序,并提供了用户与计算机之间的交互界

《C++标准库第2版》3.2 虽旧犹新的语言特性 笔记

3.2虽旧犹新的语言特性非类型模板参数1.除了类型参数之外,我们也可以为template使用nontypeparamatter.2.非类型参数看作是template类型的一部分bitset<32>flags32;bitset<50>flags50;//这两个看作是两个不同类型的template模板参数默认值classt

详解junit

目录1.概述2.断言3.常用注解3.1.@Test3.2.@Before3.3.@After3.4.@BeforeClass3.5.@AfterClass4.异常测试5.超时测试6.参数化测试1.概述什么是单元测试:单元测试,是针对最小的功能单元编写测试代码,在JAVA中最小的功能单元是方法,单元测试针对JAVA就是单

Blender批量修改名称

假如在Blender里按顺序添加了多个mesh,名字后缀按照数字1,2,3…编号,此时又要插入一个新的mesh,那么这个mesh之后的其它mesh名字都要加1,此时该怎么办呢?比较简单的办法是把新mesh后面的mesh名称一个一个手动加1,如果数量少还可以,如果很多就有点浪费时间了。Blender自身也提供了批量修改的

多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码实现💥1概述多旋翼无人机已被广泛应用于军事与民用领域。导航系统

热文推荐