Castle MonoRail & amp; ELMAH
-
07-07-2019 - |
Question
Quelqu'un utilise-t-il Castle MonoRail et ELMAH avec succès?
Nous utilisons plusieurs résolutions pour présenter aux utilisateurs des messages d'erreur conviviaux, mais si nous procédons ainsi, les exceptions n'atteindront jamais la valeur ELMAH, car le sauvetage MonoRail les intercepte.
Idéalement, nous souhaitons que l'utilisateur voie le sauvetage, mais que l'exception soit enregistrée dans ELMAH.
Des idées / des pointeurs?
A bientôt,
Jay.
La solution
Après avoir consulté les liens mis en ligne par Macka, j’ai écrit ce gestionnaire de exceptions monorail simple:
public class ElmahExceptionHandler : AbstractExceptionHandler {
public override void Process(IRailsEngineContext context) {
ErrorSignal.FromCurrentContext().Raise(context.LastException);
}
}
Puis je l'ai enregistré dans web.config, section monorail:
<monorail>
<extensions>
<extension type="Castle.MonoRail.Framework.Extensions.ExceptionChaining.ExceptionChainingExtension, Castle.MonoRail.Framework"/>
</extensions>
<exception>
<exceptionHandler type="MyNamespace.ElmahExceptionHandler, MyAssembly"/>
</exception>
...
</monorail>
Et c'est tout.
Autres conseils
Après avoir également publié sur les groupes Google , on dirait Atif may m'ont dirigé dans la bonne direction.
Vous voudrez peut-être examiner l'erreur la signalisation dans ELMAH. Il est conçu pour scénarios où vous voulez passer un exception par le pipeline d'ELMAH même s'il est manipulé / avalé. Voici quelques conseils pour commencer avec signalisation d'erreur:
- http://code.google.com/p/elmah/wiki / DotNetSlackersArticle # Error_Signa ...
- http://code.google.com/p/elmah/wiki / DotNetSlackersArticle # Signaling_e ...
-Atif