Comment puis-je déterminer par programme si oui ou non ELMAH est activé?Déterminer si ELMAH est activé ou non?
Répondre
Parce que:
ELMAH peut être dynamiquement ajouté à un en cours d'exécution application Web ASP.NET ou même toutes les applications Web ASP.NET sur une machine , sans aucun besoin de recompilation ou redéploiement.
vous ne devriez pas avoir besoin de détecter s'il est présent. Il suffit d'écrire votre code de journalisation comme s'il était présent, et si ce n'est pas le cas, rien ne sera enregistré.
intérêt ?: How to get ELMAH to work with ASP.NET MVC [HandleError] attribute? (réponse acceptée est par auteur de ELMAH)
Je dois montrer un lien vers elmah.axd. Si elle est désactivée, je ne veux pas montrer le lien? – lance
Pouvez-vous faire une requête web à elmah.axd et vérifier le code d'état? Peut-être le faire une fois et stocker les résultats dans la variable d'application pour des utilisations futures. – Greg
@Greg: J'espérais éviter ces frais généraux. Votre solution est ce que j'ai codé jusqu'à présent, car c'est le meilleur que je puisse penser. Je vais essayer de parcourir la liste des modules chargés, selon la réponse de Tadas ci-dessus. – lance
Vous pouvez énumérer tous les modules chargés (via HttpApplication.Modules) et si existe le module Elmah, puis Elmah est activée:
foreach (var m in Application.Modules) {
if (m is Elmah.ErrorlogModule) {
// ...
}
}
Non sûr. N'a pas arboré ça.
J'ai essayé, mais Application.Modules n'était pas disponible (ça fait longtemps que je n'ai pas essayé - je me souviens peut-être mal des détails, mais je n'ai pas réussi à le faire). Avez-vous du code réel que vous avez utilisé pour faire cela? – lance
Suite à la réponse de Tadas, je suis venu avec le code suivant qui fonctionne pour moi (note que je traduis cela de VB sans vérifier si elle compile, si YMMV):
bool foundElmah = false;
foreach (var m in HttpContext.Current.ApplicationInstance.Modules) {
var module = HttpContext.Current.ApplicationInstance.Modules.Item(m);
if (module is Elmah.ErrorLogModule || module is Elmah.ErrorMailModule || module is Elmah.ErrorFilterModule || module is Elmah.ErrorTweetModule) {
foundElmah = true;
break;
}
}
if (foundElmah) {
// do something here, like populate the application cache so you don't have to run this code every time
return true;
} else {
// store in application cache, etc.
return false;
}
Cela devient aussi autour des problèmes que j'ai eu avec obtenir une réponse 401 en demandant elmah.axd (j'utilisais l'authentification Windows), et est beaucoup plus rapide, et ne suppose pas un emplacement spécifique pour elmah.axd.
- 1. déterminer si dropdownlist est sélectionné ou non
- 2. Déterminer si le module Magento est activé
- 3. Peut-php détecter si javascript est activé ou non?
- 4. Nécessité de déterminer si ELMAH enregistre une exception non gérée ou déclenchée par ErrorSignal.Raise()
- 5. comment déterminer si une personne est en ligne ou non
- 6. Comment déterminer si une URL est une image ou non?
- 7. Est-il activé ou activé?
- 8. Comment déterminer si un contrôle est activé sur une page?
- 9. Tester si javascript est activé
- 10. Détecter si IIS est activé
- 11. Déterminer si l'application est WinForms ou WebForms
- 12. Comment déterminer si le compte de l'utilisateur est activé ou désactivé
- 13. Détecter si Javascript est activé?
- 14. Comment détecter si Vista UAC est activé?
- 15. Elmah pour les applications de protocole non-HTTP OU Elmah sans HttpContext
- 16. Ajax activé GridView dans ASP.NET MVC est possbile ou non?
- 17. Portable SQL pour déterminer si une table existe ou non?
- 18. Déterminer si une variable non-objet est initialisée en C++
- 19. Asp.Net - Rediriger si JavaScript est pas activé
- 20. Détecter si le commutateur 3gb est activé ou désactivé par programmation
- 21. En C#, comment déterminer si une image (jpg, gif ou png) est entrelacée (non progressive) ou non entrelacée (progressive)?
- 22. Vérifiez si ftp est complet ou non?
- 23. si l'utilisateur est déjà connecté ou non?
- 24. Si cette fonction est correcte ou non?
- 25. Déterminez rapidement si le code est Visual C++ ou non
- 26. déterminer si uiview est affiché
- 27. L'économiseur d'écran plante si l'UAC est activé
- 28. Vérifiez si le copier-coller est activé
- 29. Vérifiez pour voir si l'email est activé?
- 30. Quelle bibliothèque tierce dans .net qui pourrait déterminer correctement si le pdf est corrompu ou non?
pourriez-vous expliquer votre question? tel qu'il est, cela n'a aucun sens (pour moi). –
Certainement. J'expédie ELMAH avec un produit, mais c'est la décision du client de l'activer ou non (dans le web.config). J'ai besoin de savoir, lorsqu'une page est en cours de chargement, si elle est activée ou non. Je suis heureux de répondre à vos questions. – lance
ne pouvait pas simplement lire la section web.config pertinente? –