将Elmah与ServiceStack.Mvc一起使用

时间:2012-08-22 20:28:50

标签: elmah servicestack

我在/elmah.axd路径上看不到未处理的异常(MyService:RestServiceBase)。

我添加了http处理程序以查看错误。

 <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

我已经安装了ServiceStack.Logging.Elmah

更新

我已经安装了Elmah.Mvc软件包

我可以在Controller的Action中出错,但我无法获得服务错误!

更新

我并不孤单:) https://groups.google.com/forum/#!topic/servicestack/WSrM5CLL120

1 个答案:

答案 0 :(得分:4)

您需要订阅AppHostBase.ServiceExceptionHandler方法中的Configure个事件,该方法通常位于AppHost类中:

public class AppHost : AppHostBase
{
    ....

    public override void Configure(Funq.Container container)
    {
        ServiceExceptionHandler += (request, exception) =>
        {
            //pass the exception over to Elmah
            var context = HttpContext.Current;
            Elmah.ErrorLog.GetDefault(context).Log(new Error(exception, context));

            //call default exception handler or prepare your own custom response
            return DtoUtils.HandleException(this, request, exception);
        };
    }

    ....
}