【问题标题】:Elmah Log Error Timeout cause program to crashElmah 日志错误超时导致程序崩溃
【发布时间】:2020-02-17 06:57:49
【问题描述】:

我有一个问题,我的程序可能会发生很多错误(例如:从文件中读取数据,如果发生数据错误,则应记录数据)。我目前使用 elmah 将错误记录到 SQL 数据库中。 Elmah日志错误功能到数据库可能会导致超时,程序会崩溃。是否有任何设置可以增加 elmah 函数超时,或者我使用 Elmah 记录错误的方法是错误的?

【问题讨论】:

    标签: c# database elmah


    【解决方案1】:

    如果超时是当前执行插入命令,则需要通过代码设置延长超时。唯一的方法(据我所知)是通过分叉 ELMAH 代码并手动设置:

    command.CommandTimeout = 1;
    

    您可以尝试通过连接字符串设置连接超时,但这仅用于连接,听起来不是这里的问题:

    Data Source=...;Initial Catalog=...;Integrated Security=SSPI;Connection Timeout=30
    

    【讨论】:

    • 您好,感谢您的回答。 Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(message));和 Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(new Exception(message)));有没有办法在这2个函数中设置CommandTimeout?
    • 不是 CommandTimeout,没有。该值只能在代码中设置,并且位于 ELMAH 源代码中。如前所述,您可以克隆代码并自己插入超时。但是拥有修改后的代码副本并不理想。也许弄清楚为什么执行超时?一定是数据库连接速度慢、网络问题或类似情况?
    • 可能是因为表比较大,目前临时的解决办法是把旧记录备份到另一个表。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2020-10-06
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多