J'ai un service WCF qui a le code suivant dans global.asax: l'idée est d'au moins enregistrer toutes les exceptions non conditionnées. P> mais Cela ne semble jamais être appelé. J'ai essayé de faire une fracture par zéro dans l'une de mes opérations de service et cela arrête simplement le service après avoir atteint l'exception. P> int zero = 0;
int result = 100 / zero;
3 Réponses :
Avez-vous essayé cela? Je me demande quelle est la différence entre votre appel et celui-ci, avec le "+ = nouveau" ... mais c'est vaut la peine d'essayer. p> p>
De http://msdn.microsoft.com/en-us/ bibliothèque / system.appdomain.unhandledexception.aspx
Il n'y a pas de différence. On est juste une "vieille école" c # notation. Ils compilent la même chose.
the Filtre d'exception non géré pour un domaine d'application est une dernière tentative de fossé pour permettre à l'application de loger des informations significatives avant qu'elle ne soit terminée. p>
Cet événement fournit une notification d'exceptions non capturées. Il permet à l'application de connecter des informations sur l'exception avant que le gestionnaire par défaut du système ne signale l'exception à l'utilisateur et
terminait l'application forte>. P>. blockQuote> Si WCF a permis d'exiger une exception par un service à être complètement non fabriqué de cette manière, cela signifierait que lorsque le service est hébergé dans IIS, le processus de travailleur entier serait résilié car une seule demande a soulevé une exception - pas un résultat souhaitable. En conséquence, WCF ne laissait pas d'exceptions projetées par des services non gourmés - Cet événement ne sera pas soulevé dans ce cas em>. P>
Si vous souhaitez enregistrer des exceptions projetées par les services de WCF, jetez un coup d'œil au
iErrorhandler code> interfaceà la place. p>
Essayez également de saisir une exception threadex, par exemple.
Application.ThreadException += Application_ThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Je me demande si c'est quelque chose à voir avec IIS ou le moyen de WCF Service est hébergé. Comme ici , les gars Dit: En résumé, des exceptions non gérées dans une application ASP.NET peuvent être saisies avec un gestionnaire d'événements Application_Error dans le global.aSax, ou en créant une httpmodule pour attraper l'événement AppDomain.unhandleXception. I>