7
votes

Appdomain.CurrentDomaine.unhandledexception ne s'appelle pas

J'ai un service WCF qui a le code suivant dans global.asax: xxx pré>

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;


1 commentaires

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.


3 Réponses :


0
votes

Avez-vous essayé cela?
De http://msdn.microsoft.com/en-us/ bibliothèque / system.appdomain.unhandledexception.aspx xxx

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.


1 commentaires

Il n'y a pas de différence. On est juste une "vieille école" c # notation. Ils compilent la même chose.



9
votes

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.

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 . .

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 .

Si vous souhaitez enregistrer des exceptions projetées par les services de WCF, jetez un coup d'œil au iErrorhandler interface à la place.


0 commentaires

2
votes

Essayez également de saisir une exception threadex, par exemple.

        Application.ThreadException += Application_ThreadException;
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;


0 commentaires