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
。
答案 0 :(得分:5)
我认为你可以准备一个全局过滤器(如果你有许多控制器,并且不想用属性装饰每个过滤器),只需用它来检查抛出了什么样的异常,例如:将用户重定向到某个自定义视图:
public class SqlExceptionFilter: IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
// Do your logic
}
}
然后只需在Global.asax
方法的Application_Start()
中注册:
GlobalFilters.Filters.Add(new SqlExceptionFilter());