【问题标题】:Using elmahr.elmah in winform application在 winform 应用程序中使用 elmahr.elmah
【发布时间】:2013-04-13 05:18:44
【问题描述】:

我最近向我的团队负责人展示了 ElmahR 仪表板,现在他想在我们当前的所有项目中使用 ElmahR 实现 ExceptionsLog,包括那些 Winform 应用程序,经过多天的搜索我找不到方法将 Winform 应用程序添加为“ElmahR 源”。

有人知道吗?

【问题讨论】:

    标签: winforms dashboard elmahr


    【解决方案1】:

    ElmahR.Elmah 中的ErrorPostModule 不支持 Winforms 应用程序,因为它被编写为 ELMAH 模块,因此它与 ASP.NET 生命周期相关联,无法轻松调整。也就是说,ErrorPostModule 并没有做任何如此神奇的事情,并且可以很容易地作为编写用于 Winforms 应用程序的小型“处理程序”的指南。看看它的代码here,你应该做的是:

    • 替换 OnInit 方法中的内容,该方法仅读取配置位并附加错误处理程序
    • 发生错误时,像在SetError 方法中那样处理它,以将其发布到正确的目的地,读取您之前读取的配置参数。您将引用 ELMAH 并从您的异常中创建一个 Error 实例,然后使用 ErrorJson.EncodeString 对其进行编码

    你可能想借用W3.cs文件来简化http表单的编译。

    在某个时候,我可能会概括这项工作并将其放在 ElmahR.Elmah 中,但不确定何时能够完成。

    【讨论】:

      【解决方案2】:

      我刚刚 fork elmahr 源代码来解决这个问题,我想从控制台应用程序中发布错误,所以我要删除对 Elmah 的依赖并创建“错误”对象并将它们发送到仪表板。

      这是一项正在进行的工作,但可以作为解决问题的起点。

      https://bitbucket.org/rudygt/elmahr

      更新:分支现在完全支持使用 ServiceStack 端点发布到 ElmahR,使用 json over http。这消除了对原始 Elmah 的依赖以将错误发布到仪表板。第一个示例是 C# 控制台应用程序

      【讨论】:

      • 如果你能找到时间来完成它,那将是一个很酷的贡献,请让我了解最新情况,我想在某个时候把它拉进来 :)
      • 当然@Wasp,我会花时间来解决这个问题,当我觉得它的质量很好时,我会要求你进行审查,如果你喜欢它,请提出拉取请求,感谢您为 Elmahr 所做的出色工作。
      猜你喜欢
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多