我最近向我的团队负责人展示了 ElmahR 仪表板,现在他想在我们当前的所有项目中使用 ElmahR 实现 ExceptionsLog,包括那些 Winform 应用程序,经过多天的搜索,我找不到添加Winform 应用程序作为“ElmahR 源”。
有人有线索吗?
ErrorPostModule
inElmahR.Elmah
不支持 Winforms 应用程序,因为它被编写为 ELMAH 模块,因此它与 ASP.NET 生命周期相关联,无法轻松适应。也就是说,ErrorPostModule
它并没有做任何如此神奇的事情,并且可以很容易地作为编写用于 Winforms 应用程序的小型“处理程序”的指南。看看它的代码here,你应该做的是:
SetError
方法中那样处理它,将其发布到正确的目的地,读取您之前读取的配置参数。您将引用 ELMAH 并从您的异常中创建一个Error
实例,然后使用ErrorJson.EncodeString
它对其进行编码您可能想借用W3.cs文件来简化 http 表单的编译。
在某个时候,我可能会概括这项工作并将其放在 ElmahR.Elmah 中,但不确定何时能够完成。
我刚刚派生了 elmahr 源代码来处理这个问题,我想从控制台应用程序中发布错误,所以我要删除对 Elmah 的依赖并创建“错误”对象并将它们发送到仪表板。
这是一项正在进行的工作,但可以用作解决问题的起点。
https://bitbucket.org/rudygt/elmahr
更新:分支现在包括完全支持使用 ServiceStack 端点发布到 ElmahR,使用 json over http。这消除了对原始 Elmah 的依赖以将错误发布到仪表板。第一个示例是 C# 控制台应用程序