将网站置于维护模式?

Posted

技术标签:

【中文标题】将网站置于维护模式?【英文标题】:Put a website in maintenance mode? 【发布时间】:2009-05-26 18:55:54 【问题描述】:

我开发了我的第一个 Web 应用程序,令人惊讶的是,它变得非常流行。

由于该网站现已上线,我很难进行一些更改,因为担心有些人仍然登录并正在使用该应用程序。

我希望避免使用重复的 Web 应用程序实例进行测试。

有没有办法让网站进入“维护模式”,只有我可以访问它?就像重定向到包含一些信息的页面,告诉它处于维护模式。

谢谢。 :-)

【问题讨论】:

【参考方案1】:

我希望避免重复 Web 应用程序的实例 测试。

这就是你的问题。除了最琐碎的站点之外,您应该有一个登台或开发实例。您应该使用源代码管理并有一个脚本来更新主实例。

【讨论】:

非常好。我将不得不考虑这一点。这个项目真的让我进入了一些不同的方面。 :-) +1 @jskulski。我认为这一点再怎么强调也不过分。您至少需要一个与您的生产环境尽可能匹配的阶段/UAT 环境。让你的错误在那里而不是生产。更好的是拥有一个开发环境并将您的更改从那里编写到 Stage。这可以让您捕获部署错误并顺利进行生产部署。 这将是我的解决方案,我最好看看源代码控制。以前从未使用过它。感谢您为我指明新方向!如果我必须阅读有关源代码控制的内容,如果您愿意分享这些信息,我会很高兴。 :-) 查看“Subversion”(也称为 SVN)和“TortoiseSVN”。【参考方案2】:

您只需将一个名为 app_offline.htm 的文件放到您网站的根目录中,ASP.NET 就会自动将所有流量路由到该页面。该文件可以包含任何您希望表明您的网站因维护而在短时间内关闭的 html

更多信息请阅读App_Offline.htm and working around the "IE Friendly Errors" feature:

app_offline.htm 的工作方式是 你把这个文件放在 应用。当 ASP.NET 看到它时,它 将关闭应用程序域 应用程序(而不是重新启动它 请求),而是发回 app_offline.htm 文件的内容 响应所有新动态 申请的请求。什么时候 您已完成网站更新,只需 删除文件,它会回来 在线。

【讨论】:

【参考方案3】:

这是您问题的答案: http://www.codeproject.com/Tips/219637/Put-the-website-in-Maintanance-Mode-Under-Construc

【讨论】:

【参考方案4】:

在 ASP.NET 中没有这样的内置功能,除了 app_offline.htm,它不能完全满足您的需求,因为即使您也会被拒绝访问该站点。您必须自己构建它,但最好在路由器和负载均衡器级别而不是在应用程序级别完成。当然,这取决于您的网络架构。

【讨论】:

【参考方案5】:

除了构建您网站的开发副本以构建补丁和修复程序之外,您不能提前几天宣布站点关闭进行维护吗?我不是网络程序员,但您可能想了解Hattrick,一个流行的在线足球管理,为维护他们的网站做了什么。他们在用户登录后使用主页上的通知系统,宣布何时进行维护(通常在欧洲的深夜,大部分玩家和所有开发人员都位于),然后他们关闭了网站大概几个小时。当他们关闭网站时,他们会发布一个页面,使用与网站其余部分相同的样式,并提供它何时重新启动和运行的估计。简单、优雅,再加上长期的预警,它似乎可以很好地安抚用户群。

让用户提前知道计划进行维护,并让他们了解维护的目的,大多数人将能够适应停机时间。没有什么比故意访问一个在 10 到 20 分钟前启动并运行的 Web 应用程序发现它突然不可用并停止维护更令人沮丧的了。

【讨论】:

【参考方案6】:

试试app_offline.htm??

【讨论】:

【参考方案7】:

什么版本的 ASP.NET?我敢肯定还有一百万种更优雅的方法可以做到这一点,但您可以更改 IIS 中的默认文档以重定向到 Maint.html(或类似文件)。

【讨论】:

以上是关于将网站置于维护模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何将你的 WordPress 网站置于维护模式

如何将你的 WordPress 网站置于维护模式

如何将 nextjs 应用程序置于维护模式(使用 Vercel)

考虑到 SEO 的维护模式策略

如何在 Symfony 2 中进入维护模式以安全地更新生产应用程序?

Rails:仅管理员维护模式