3

有人成功使用 Castle MonoRail 和 ELMAH 吗?

我们正在使用许多 Resuce 向用户提供友好的错误消息,但如果我们这样做,异常永远不会像 MonoRail 救援拦截它们那样到达 ELMAH。

理想情况下,我们希望用户看到救援,但要在 ELMAH 中记录异常。

任何想法/指针?

干杯,

杰。

4

2 回答 2

3

查看 Macka 发布的链接后,我编写了这个简单的单轨异常处理程序:

public class ElmahExceptionHandler : AbstractExceptionHandler {
    public override void Process(IRailsEngineContext context) {
        ErrorSignal.FromCurrentContext().Raise(context.LastException);
    }
}

然后我在 web.config,monorail 部分注册了它:

<monorail>
    <extensions>
        <extension type="Castle.MonoRail.Framework.Extensions.ExceptionChaining.ExceptionChainingExtension, Castle.MonoRail.Framework"/>
    </extensions>
    <exception>
        <exceptionHandler type="MyNamespace.ElmahExceptionHandler, MyAssembly"/>
    </exception>
...
</monorail>

就是这样。

于 2009-03-06T19:17:25.773 回答
2

Google Groups上发帖后,看起来 Atif 可能已经为我指明了正确的方向。

您可能想查看 ELMAH 中的错误信号。它专为您希望通过 ELMAH 的管道传递异常的场景而设计,即使它正在被处理/吞咽。以下是一些开始使用错误信号的指针:

-阿提夫

于 2008-11-10T11:07:08.737 回答