如何锁定Web应用程序以进行维护而不会丢失未保存的工作?

时间:2013-11-08 08:32:57

标签: c# .net web maintenance downtime

我在ASP .NET中有一个大型Web应用程序(不是这里的技术很重要),目前还没有办法在没有当前用户丢失工作的情况下锁定维护。由于我之前没有实现过类似的内容,所以我想听听开发人员为此类操作采取的一些标准预防措施和步骤。

以下是我能想到的一些问题:

  • 每个页面是否应该重定向到“网站停止维护”页面,还是有更中心的方法来阻止互动?
  • 如何集中定期维护,以便在锁定站点之前锁定用户操作。从而防止丢失未保存的工作。

应用程序是数据驱动的,并在业务层实现事务范围。它不使用负载平衡或复制。我可能错了,但让BLL处理这个问题并不“感觉正确”。任何建议或文章链接将不胜感激。

2 个答案:

答案 0 :(得分:0)

可能有用的非答案答案:设计应用程序,以便可以透明地将其升级到其用户。然后,您永远不会有用户真正需要担心的维护窗口。没有必要锁定应用程序,因为一切都在继续。如果事务被删除,那么这就是应用程序中的一个错误,因为明确要求应用程序可以使用正在进行的事务进行升级,因此它已经过编码以支持它,并且有一些测试可以验证该功能。

以Netflix为例:它是否有锁定的维护窗口?不是普通大众所知道的。 : - )

答案 1 :(得分:0)

制作维护页面的一种方法是使用IIS的app_offline.htm功能。使用此功能,您将能够向所有用户显示相同的html页面,通知他们维护。

StackOverflow中有一篇很好的帖子。 ASP.NET 2.0 - How to use app_offline.htm

您可以做的另一件事是通知您的用户有计划的维护,以便他们也知道并停止使用该应用程序。

这一切都取决于您升级应用程序所需的时间。如果升级是上传新文件并且花费的时间不超过一两分钟,那么您的用户最有可能甚至看不到它。