【问题标题】:ASP.NET MVC: Check database connectivity on application startupASP.NET MVC:在应用程序启动时检查数据库连接
【发布时间】:2016-09-03 02:02:25
【问题描述】:

1- 有时我的 SQL Server 因维护而停机,所以当我尝试运行我的 ASP.NET MVC 应用程序时,我会遇到黄色错误屏幕,错误为 network-related or instance-specific error occurred while establishing a connection to SQL Server.

由于我不知道 ASP.NET MVC 中的事件顺序,我想知道我应该在哪里检查连接性,以便我可以将用户重定向到通知他/她这种情况的视图(而不是显示此错误页面) . 我在 asp.net 论坛中看到了 this answer,但我无法理解如何在 global.asax 中处理这个问题。

2- 是否可以对每个数据库连接错误进行一些更改,我可以将用户重定向到该信息页面?我的意思是可以为数据库连接错误定义全局异常处理程序吗?

P.S. 我在 web.config 中的 connectionString 被命名为 DefaultConnection

【问题讨论】:

  • 您可以使用[HandleError(ExceptionType = typeof(....), View = "...")] 来装饰控制器,您可以在其中指定特定的错误类型(例如SqlException)以及发生错误时将显示的视图名称

标签: c# asp.net asp.net-mvc asp.net-mvc-5


【解决方案1】:

我认为你可以准备一个全局过滤器(如果你有很多控制器并且不想用属性装饰每个控制器)并使用它来检查抛出了什么样的异常,例如将用户重定向到某个自定义视图:

public class SqlExceptionFilter: IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        // Do your logic
    }
}

然后只需在Global.asaxApplication_Start()方法中注册它:

GlobalFilters.Filters.Add(new SqlExceptionFilter());

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2013-06-15
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多