1

我有一个针对 SQL Server 2005 数据库运行的 ASP.NET 应用程序。每天一次,我需要在 SQL 代理作业中运行一系列 procs 和 SSIS 包来更新表中的数据。SQL 代理作业将在无人参与的情况下按计划运行。

当 SQL 代理作业步骤运行时,Web 应用程序失败的机会很小,因此我想暂时完全禁用该应用程序,运行敏感步骤,然后再次启用该应用程序。

我看到我可以使用app_offline.htmWeb 应用程序站点根目录中的文件。为此,我需要为 SQL 代理程序包提供跨服务器的权限,以便它可以ren app_offline.tmp app_offline.htm在 Web 服务器上执行类似操作,运行这些步骤,然后将 htm 文件返回到 .tmp。

我正在考虑的另一个选项是将“MAINTMODE”布尔值放入由 SQL 代理作业更新的表中,并让 Web 应用程序在每次调用数据库时检查它以确保它可用。如果不是,请重定向到指示该站点暂时离线的页面。

我应该考虑其他方法吗?对用户造成最小干扰的最佳方法是什么?

谢谢,

克里斯

4

1 回答 1

1

我会使用您提出的“MAINTMODE”方法。这样,只有在请求到达您的 Web 服务器时才会触发它。为简单起见,您的数据库服务器不必与您的 Web 服务器通信。让您的 Web 服务器处理演示,让您的数据库服务器专注于数据库。

于 2008-11-04T16:17:57.613 回答