2008-11-09 6 views
3

С успехом ли кто-нибудь использует Castle MonoRail и ELMAH?Замок MonoRail & ELMAH

Мы используем ряд Resuces для предоставления пользователям дружественных сообщений об ошибках, но если мы это сделаем, исключения не доходят до ELMAH, так как MonoRail rescue перехватывает их.

В идеале мы хотим, чтобы пользователь увидел спасение, но исключение должно быть зарегистрировано в ELMAH.

Любые идеи/указатели?

Cheers,

Jay.

ответ

3

После просмотра ссылок Macka вывешенные, я написал это просто обработчик исключений монорельса:

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

Тогда я зарегистрировал его в web.config, монорельсовой раздел:

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

И это все.

2

После публикации на Google Groups похоже, что Atif, возможно, указал мне в правильном направлении.

Возможно, вы захотите заглянуть в ошибку сигнализация в ELMAH. Он предназначен для сценариев , где вы хотите передать исключение по трубопроводу ELMAH , даже если он обрабатывается/проглатывается. Вот некоторые указатели, чтобы начать работу с сигнализацией ошибки:

-Atif