我在ASP .NET中有一个大型Web应用程序(不是这里的技术很重要),目前还没有办法在没有当前用户丢失工作的情况下锁定维护。由于我之前没有实现过类似的内容,所以我想听听开发人员为此类操作采取的一些标准预防措施和步骤。
以下是我能想到的一些问题:
应用程序是数据驱动的,并在业务层实现事务范围。它不使用负载平衡或复制。我可能错了,但让BLL处理这个问题并不“感觉正确”。任何建议或文章链接将不胜感激。
答案 0 :(得分:0)
可能有用的非答案答案:设计应用程序,以便可以透明地将其升级到其用户。然后,您永远不会有用户真正需要担心的维护窗口。没有必要锁定应用程序,因为一切都在继续。如果事务被删除,那么这就是应用程序中的一个错误,因为明确要求应用程序可以使用正在进行的事务进行升级,因此它已经过编码以支持它,并且有一些测试可以验证该功能。
以Netflix为例:它是否有锁定的维护窗口?不是普通大众所知道的。 : - )
答案 1 :(得分:0)
制作维护页面的一种方法是使用IIS的app_offline.htm功能。使用此功能,您将能够向所有用户显示相同的html页面,通知他们维护。
StackOverflow中有一篇很好的帖子。 ASP.NET 2.0 - How to use app_offline.htm。
您可以做的另一件事是通知您的用户有计划的维护,以便他们也知道并停止使用该应用程序。
这一切都取决于您升级应用程序所需的时间。如果升级是上传新文件并且花费的时间不超过一两分钟,那么您的用户最有可能甚至看不到它。