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é?
Comment est-ce différent que la méthode Application_Error dans Global.asax? – user13053
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
Et ceci: http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx – Diadistis