Et comment le réparer. J'aimerais enregistrer chaque exception levée à des fins de maintenance.
Réponses
Trop de publicités?Ce problème est connu dans .Net - Application_Error déclenche jamais pour un service web. Vous ne savez pas si il n'y a aucune raison qu'il le serait par la conception, mais il ne fonctionne tout simplement pas.
Jeff Atwood avait un post sur ce il y a quelques années, avec les idées suivantes:
- Mettre un bloc try-catch autour de chaque méthode de service web
- L'utilisation d'une façade modèle de conception et d'inclure le try-catch dans les objets parents
- Écrire une coutume extension SOAP ou HTTPModule
La seule que j'ai de soins pour est le premier, même s'il semble que beaucoup de travail.
Mieux: HttpApplication.Événement d'erreur:
Note:
Si votre application Web contient XML Des services Web, vous ne pouvez pas utiliser l'Erreur événement mondial pour le traitement des exceptions ces services. Le gestionnaire HTTP pour Services Web XML, consomme tout exception qui se produit dans un site Web XML le service et la convertit en un SAVON faute avant que l'Erreur ne soit appelé. Pour gérer de service Web XML exceptions, construire une extension SOAP Web de processus service exceptions personnalisé dans un mondial gestionnaire d'exception. Pour plus d' d'informations, voir de la Manipulation et de les Jeter Des Exceptions dans les Services Web XML.
Pour ceux qui recherchent de texte de Microsoft sur ce sujet, voir ici: "de la Manipulation et de lever des Exceptions dans les Services Web XML".
C'est la section appropriée:
Une application Web peut être composée de plusieurs services Web XML, cependant l'événement Application_Error dans le Global.asax fichier ne peut pas être utilisé pour le mondial de la gestion des exceptions. Le HttpHandler pour les services Web XML consomme toute exception qui se produit lorsqu'un service Web XML est en cours d'exécution et il se transforme en une erreur SOAP avant l'événement Application_Error est appelé.