我正在测试ELMAH,故意关闭我的应用程序中ELMAH日志的数据库连接,看看如果数据库不可用,将在生产中发生什么.
似乎ELMAH无法捕获自己的错误 - 当SQL数据库日志失败时,AXD文件不可用.
如果数据库不可用,ELMAH的预期行为是什么?
如果发生这种情况,我该如何诊断我的错误?
Ati*_*ziz 12
似乎ELMAH无法捕获自己的错误
ELMAH确实在某种程度上捕获了自己的错误.如果ErrorLogModule在尝试记录错误时遇到异常,则日志记录导致的异常将发送到标准.NET Framework跟踪工具.参见1.0来源的第123行.另请参阅ASP.NET文档中的以下演练,以获取使用ASP.NET跟踪的标准.NET Framework跟踪:
演练:将ASP.NET跟踪与System.Diagnostics跟踪集成
SQL数据库日志失败时,AXD文件不可用.
那是正确的.SQL Server数据库连接必须能够在使用时查看存储在SQL Server数据库中的错误SqlErrorLog.
如果数据库不可用,ELMAH的预期行为是什么?
例如,如果SQL Server数据库关闭,SqlException则在日志记录期间将发生.然后,ELMAH将SqlException对象内容发送到标准.NET Framework跟踪工具.
如果发生这种情况,我该如何诊断我的错误?
这里最好的选择是启用错误的记录和电子邮件.如果数据库关闭,邮件网关启动的可能性很大,您仍会收到错误通知.实际上,错误将记录在某些邮箱中.这还有一个额外的好处,如果邮件网关永远停机,那么数据库可能会启动并且错误将被记录在那里.但是,如果两者都失效,那么您将需要认真审查您的生产基础架构,并可能采取措施通过其他措施监控系统的运行状况.
不太确定 ELMAH,但此类日志框架的预期行为是在出现问题时不会抛出任何异常。也就是说,如果 ELMAH 的数据库发生故障,我认为它不会将错误记录到数据库中。
如上所述,您可以/应该使用替代接收器 - 电子邮件或平面文件。
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |