在web.config中检测到错误的db后,在application_begin中结束asp.net应用程序

本文关键字:application begin asp 应用程序 net 结束 db config web 检测 错误 | 更新日期: 2023-09-27 18:05:08

我有这个旧的asp.net应用程序,由于一些原因,我不会进入这里,它一直在错误的数据库上运行。

我们在这一点上没有任何构建服务器的规定,我只是在寻找一种快速的方法来防止应用程序加载时,我的代码在全局。Asax检测到该数据库不是生产数据库。

我这样写:

 foreach (ConnectionStringSettings s in ConfigurationManager.ConnectionStrings)
{
    if (s.ConnectionString.Contains(ProdDataBaseServer) == ValidateCondition)
        return false;
    }

我的问题是,是否有更好的方法来做到这一点,以及全局asax中哪个事件最适合处理此检查?

Thanks in advance

B

在web.config中检测到错误的db后,在application_begin中结束asp.net应用程序

叫我迷信(尽一切可能),但如果可以避免,我不想完全依赖Session_start或Application_start。我仍然不相信每次用户出现在网站上都会发生这种情况(因为大约15年前就有这样的问题)。

如果你正在使用某种形式的Base-object,你的Pages从它继承,你可以在一些早期的事件中执行检查,比如Base-Page类的OnInit。或者,如果对每个页面调用执行某种类型的用户验证,则可以在执行用户检查的同时执行数据库检查。我可能会将用户重定向到一个(html)页面,上面写着"站点已关闭",并终止他们的会话和所有这些。

或者,如果这个问题在运行时没有发生,但总是因为开发人员在发布之前忘记更改代码,那么您可以在编译时解决它。你可以在构建完成后马上进行检查;运行一个构建后脚本,检查您的web。配置包含一个特定的字符串,该字符串对于正确(或错误)的数据库是唯一的。

if (theFileAsString.Contains("Data Source=THE_WRONG_ONE")){
    // Perform actions to inform user that this compilation should not be released
}