2009-01-14 14 views
1

Je travaille sur un site Web plutôt volumineux. Nous avons actuellement 4 serveurs Web et un cluster db passif actif exécutant ASP.NET 2.0 avec C#. Actuellement, notre gestion des exceptions ne masque pas l'exception correcte levée. J'ai entendu dire que c'est parce que Server.GetLastError() n'est pas thread-safe (note: nous n'utilisons actuellement pas Server.GetLastError().GetBaseException() qui pourrait être pourquoi nous ne recevons pas l'erreur correcte).Ajout de la gestion des exceptions globales à ASP.NET

Nous commençons un projet pour piéger les exceptions exactes afin que nous puissions réellement voir la cause première de l'erreur et j'essaie de trouver la meilleure façon de le faire.

Nos options sont:

  • Aller à travers toutes nos classes/méthodes (des centaines, sinon des milliers) d'ajouter try/catch/finally blocs pour piéger l'exception correcte.
  • Trouvez un moyen de gérer correctement les exceptions dans global.asax.

donc je suppose que mes questions sont les suivantes:

  • Est-fil Server.GetLastError() sécurité?
  • Si deux exceptions sont lancées en même temps, les deux seront-elles journalisées?
  • Y at-il une meilleure façon de gérer cela que ce que j'ai énuméré?

Répondre

0

Vous devriez jeter un oeil à Steven A. Lowe'sCALM produit.

C'est une très belle solution «plug-in».

(Disclaimer: Je faisais partie des bêta-testeurs)

1

Je crois que vous ne devriez pas modifier l'application initiale du tout. Vous devez créer et enregistrer sur web.config un IHttpModule qui se connecte à l'événement Error pour consigner de manière récursive l'exception levée et ses exceptions internes.

Lectures complémentaires:

+1

Comment est-ce différent que la méthode Application_Error dans Global.asax? – user13053

+0

Eh bien, il n'est pas, mais considérer les points suivants http://fuchangmiao.blogspot.com/2008/03/globalasax-vs-httpmodule.html avant de prendre une décision. – Diadistis

+0

Et ceci: http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx – Diadistis

Questions connexes