在维护期间用静态页面替换实时网站的最简洁方法是什么?

在维护期间用静态页面替换实时网站的最简洁方法是什么?

好了,各位,

只是想了解一下其他人针对以下场景所使用的方法......

我有一个实时 (.net 3.5) 项目,它从 IIS7 的默认文件夹运行(映射到已发布的 wwwroot 文件夹的“根目录”)。当我们执行维护或升级时(通过 VS 构建的 Windows 安装程序),我通常会用静态页面替换应用程序以说明系统正在维护中。

我们将已发布的网站移动到子目录(我们也安装了它),删除旧版本,安装新版本,当我们满意时,将其移回根目录(替换保留页面)。

那里必须这是一种更简单、风险更低的方法。

其他人如何处理这种(或类似)情况?

答案1

在 IIS 中,我使用一种名为 App_Offline 的方法。更多信息可参见Scott Gu 的博客。

app_offline.htm 的工作方式是将此文件放在应用程序的根目录中。当 ASP.NET 看到它时,它将关闭应用程序的应用程序域(而不是为请求重新启动它),而是将 app_offline.htm 文件的内容发回以响应应用程序的所有新动态请求。当您完成网站更新后,只需删除该文件,它就会重新上线。

我在演讲中指出,您需要关注的一件事是 IE6 的一项功能,称为“显示友好 Http 错误”。此功能可以在 IE 中的“工具”->“Internet 选项”->“高级”选项卡中配置,默认情况下,IE6 会启用此功能。启用此功能后,如果服务器返回非 HTTP-200 状态代码且内容少于 512 字节,则 IE 将不会显示返回的 HTML,而是用其自己的通用状态代码消息代替(我个人认为这不是非常友好)。

因此,如果您使用 app_offline.htm 功能,则应确保其中至少包含 512 字节的内容,以确保您的 HTML(而不是 IE 的友好状态消息)显示给您的用户。如果您不想在页面上显示大量文本,您可以使用的一个技巧是添加带有一些虚假内容的 html 客户端注释,使其超过 512 字节。例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Site Under Construction</title>
</head>
<body>
    <h1>Under Construction</h1>

    <h2>Gone to Florida for the sun...</h2>

<!--       
    Adding additional hidden content so that IE Friendly Errors don't prevent
    this message from displaying (note: it will show a "friendly" 404
    error if the content isn't of a certain size).

    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2> 
    <h2>Gone to Florida for the sun...</h2>     
-->
</body>
</html>

更多有关此问题的讨论请访问我们的姊妹网站,堆栈溢出

相关内容