我有一个针对 SQL Server 2005 数据库运行的 ASP.NET 应用程序。每天一次,我需要在 SQL 代理作业中运行一系列 procs 和 SSIS 包来更新表中的数据。SQL 代理作业将在无人参与的情况下按计划运行。
当 SQL 代理作业步骤运行时,Web 应用程序失败的机会很小,因此我想暂时完全禁用该应用程序,运行敏感步骤,然后再次启用该应用程序。
我看到我可以使用app_offline.htm
Web 应用程序站点根目录中的文件。为此,我需要为 SQL 代理程序包提供跨服务器的权限,以便它可以ren app_offline.tmp app_offline.htm
在 Web 服务器上执行类似操作,运行这些步骤,然后将 htm 文件返回到 .tmp。
我正在考虑的另一个选项是将“MAINTMODE”布尔值放入由 SQL 代理作业更新的表中,并让 Web 应用程序在每次调用数据库时检查它以确保它可用。如果不是,请重定向到指示该站点暂时离线的页面。
我应该考虑其他方法吗?对用户造成最小干扰的最佳方法是什么?
谢谢,
克里斯