mvc应用程序中最快的位置,用于检查连接字符串是否有效

时间:2017-03-07 14:06:00

标签: asp.net-mvc

客户想知道连接字符串是否有效,并相应地显示友好的错误页面。我找到了以下代码:

bool isValidConnectionString = true;

try
{
    var con = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["cs"].ConnectionString);
}
catch (Exception)
{
    isValidConnectionString = false;
}

现在问题变成了,在哪里放置此代码,以及如何从该位置显示错误页面?

我认为最好的地方就是在应用程序启动时立即放置,这就在Application_Start()中。但当然,这里不是返回视图的最佳位置。

那么最好的地方在哪里?

2 个答案:

答案 0 :(得分:0)

如果没有正确的数据库连接,那么设置 @Panagiotis Kanavos 中提到的视图和其他内容并不是非常有用。

因此,正如您所提到的,找到此错误的最佳位置是Application_Start()

由于Application_Start()初始化路由表,RedirectToRoute或RedirectToAction是错误的选择。

更新回答

解决此问题的最佳方法是:

  1. 声明一个全局变量(Flag变量)以显示是否有错误。

  2. 使用try/catch,并在 catch 块中记录错误。

  3. 指定全局变量以指示存在错误。

  4. 现在在Application_BeginRequest(),你可以通过检查 全局变量来检查Application_Start()是否有任何错误。 如果错误是找到,执行必要的操作,例如重定向并在会话中显示错误消息。 (这里会议有效。)

    这个答案有Here的参考。

    希望这有帮助。

答案 1 :(得分:0)

Global.asax中

Application_BeginRequest()
{ 
    try
    {
       var con = new  SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["cs"].ConnectionString);
    }
    catch (Exception)
    {
       // redirect client browser .html friendly error page 
    }
}

小心

可以为您必须管理此情况的所有请求(包括静态内容)触发BeginRequest。