客户想知道连接字符串是否有效,并相应地显示友好的错误页面。我找到了以下代码:
bool isValidConnectionString = true;
try
{
var con = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["cs"].ConnectionString);
}
catch (Exception)
{
isValidConnectionString = false;
}
现在问题变成了,在哪里放置此代码,以及如何从该位置显示错误页面?
我认为最好的地方就是在应用程序启动时立即放置,这就在Application_Start()
中。但当然,这里不是返回视图的最佳位置。
那么最好的地方在哪里?
答案 0 :(得分:0)
如果没有正确的数据库连接,那么设置 @Panagiotis Kanavos 中提到的视图和其他内容并不是非常有用。
因此,正如您所提到的,找到此错误的最佳位置是Application_Start()
。
由于Application_Start()初始化路由表,RedirectToRoute或RedirectToAction是错误的选择。
解决此问题的最佳方法是:
声明一个全局变量(Flag变量)以显示是否有错误。
使用try/catch
,并在 catch 块中记录错误。
指定全局变量以指示存在错误。
现在在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。