2013-05-21 26 views
0

在应用程序启动时,我们的应用程序连接到数据库并获取语言翻译表并将其缓存到内存中。这样做的代码放在Global.ascx中的Application_Start中何时在ASP.NET中加载数据库驱动器配置设置?

这种方法的问题是如果数据库不可用,将会有一个完全未处理的异常。由于代码设置为Application_Start,因此RequestResponse不可用。

我想知道是否有一个通用的轻量级方法。

我的计划是实现一个singleton来存储连接尝试的状态,然后检查默认的路由页面。这是一个解决方案,但我觉得缺少一些东西。还有其他方法吗?

回答

3

这种方法的问题是,如果数据库不是 可用,将会有一个完全未处理的异常。

那么处理它。你可以在你的代码中实现一些重试策略,这样如果结果没有被缓存在内存中,它将再次从数据库中获取它。

+0

我希望有一个更好的解决方案。我考虑的越多,我们的应用程序将有利于将所有初始化的东西移动到可以捕获异常并将结果显示给用户的地方。 'Application_Start'就不是这种初始化的地方。 – Candide

2
+0

谢谢。在BLL/DAL(log4net)和web app(elmah)中,我们现在有一个相当不错的方法。我的问题是关于在'Application_Start'进行初始化,在这里你没有正确的错误处理的奢侈品。 – Candide

相关问题