前段时间,系统升级,由于系统更新发布时间较长,所以必须停掉站点进行更新。导致很多用户都来反馈系统无法访问,还认为站点被黑掉了。
所以经过那件事我们也在思考,如何做到不停机,进行热部署。
单机环境下(双机或是分布式系统不用考虑这个问题),app_offline.htm是个不错的选择,
当asp.net看到应用程序中app_offline.htm文件时,它会关闭应用程序的app-domain,然后将请求发给app_offline的内容。
所以,在维护,升级的时候,就不必停止你的WEB应用程序,而是一个友好的方式提示给用户,本网站正在更新的提示,这样体验会更友好。
1. 创建一个app_offline.htm的HTM页面文件,
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>站点更新中</title> </head> <style> div { background-color:#ffffcc; padding-top:10px; padding-bottom:10px; padding-left:10px; padding-right:10px; border-style:solid; border-color:Black; border-1px; } </style> <body> <div> <h1>站点更新中</h1> <p>站点更新中,请稍后访问。</p> </div> </body> </html>
2. 将app_offline.htm放在你的网站根目录下。这样,任何外部的请求的话,都会马上被转移到该页面了。
需要注意的是:
(1)app_offline.htm 不能小于 512 字节。
(2)IIS 站点和进程池不需要停止。
(3)只有对.aspx文件的请求才自动转到app_offline.htm文件;如果请求的是.htm, .asp等文件,则不会转到app_offline.htm