我正在从 Application_Start 事件初始化 FluentNHibernate,如下所示:
Fluently.Configure()
.Database(OracleDataClientConfiguration.Oracle10
.Driver<NHibernate.Driver.OracleDataClientDriver>()
.ConnectionString("MyConnectionString")
.DefaultSchema("MySchema")
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<SomeClass>())
.BuildConfiguration()
.BuildSessionFactory();
如果连接字符串错误,或者与数据库的连接由于其他原因失败,我会得到一个TNS No listener
异常。我想显示/记录此异常,但 Application_Start(和 Applicaiton_Error)在 IIS7 集成模式下没有 HttpContext 或 Response 对象。用户会收到一个黄色的死机屏幕,告诉他们打开自定义错误。Elmah 也不记录该消息。我想以两种可能的方式之一解决问题:
- 在配置时禁用休眠配置连接到数据库。
- 根据错误提供自定义用户反馈并让 Elmah 工作(以某种方式)。这将是我理想的选择。
我能够移动 NHibernate 配置以在 Session_Start 上运行,如此处所述,这使得异常处理针对此错误起作用,但随后我得到其他异常,这些异常可能会误导问题的根本原因。有人对这种情况有很好的解决方案吗?
谢谢你。