在winform应用程序中使用elmahr.elmah

时间:2013-04-19 18:09:48

标签: winforms dashboard elmahr

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

有没有人有线索?

2 个答案:

答案 0 :(得分:1)

ErrorPostModule中的

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

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

您可能希望借用W3.cs文件来简化http表单编译。

在某些时候,我可能会将这项工作推广到ElmahR.Elmah,但不知道什么时候能够做到。

答案 1 :(得分:0)

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

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

https://bitbucket.org/rudygt/elmahr

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