Service Windows / Une nouvelle page de garde pour la pile ne peut pas être créé
J'ai un service windows qui fait un peu de travail intensif chaque minute (en fait c'est d'ouvrir un nouveau sujet à chaque fois où il se synchronise à différents systèmes sur http). Le problème est, qu'après quelques jours il s'arrête soudainement, sans aucun message d'erreur.
J'ai NLog en place et je me suis inscrite pour " domaine d'application.CurrentDomain.UnhandledException'. La dernière entrée dans le texte du journal est juste une entrée normale sans aucun problème. En regardant dans le Journal des événements, je ne peux pas trouver n'importe quel message dans le journal d'application, cependant, il y a deux entrées dans le journal système.
On dit essentiellement des le service a été arrêté de façon inattendue. Rien de plus. Le deuxième événement (en même temps que le premier) dit: "...Une nouvelle page de garde pour la pile ne peut pas être créé..."
De ce que j'ai lu, c'est probablement une exception de dépassement de pile. Je ne suis pas d'analyse XML et je ne fais pas récursive de travail. Je l'hôte d'un serveur web à l'aide de Porte, Nancy et SignalR et ont RavenDB cours d'exécution en mode incorporé. Chaque minute, une nouvelle tâche est démarrée à l'aide de la Taskfactory .NET 4.0 et j'ai aussi un ContinueWith où je re-démarrer un Système.Les minuteries.Minuterie pour le feu de nouveau dans une minute.
Comment puis-je commencer à enquêter sur cette question? Quelles pourraient être les raisons possibles d'une telle erreur?
OriginalL'auteur Daniel Lang | 2012-06-26
Vous devez vous connecter pour publier un commentaire.
Sur la base des informations que vous avez fournies, je voudrais au moins, au minimum, effectuer les opérations suivantes:
AppDomain.CurrentDomain.UnhandledException
ne vous aidera pas - unStackOverflowException
être l'un d'entre eux. Je crois que le CLR il suffit juste de vous donner une chaîne de caractères dans ce cas, au lieu d'une trace de la pile.Un exemple de souvent négligé
StackOverflowException
est:Oui, c'est possible aussi.
est-il possible d'obtenir un Système.OutOfMemoryException et ne pas se connecté spécifiquement à l'Application de la section de l'observateur d'événements?
c'est certainement un système de mémoire exception. et Ce n'est pas nécessairement votre application en la cause. il pourrait être quelque chose qui se passe sur le système en question.
OriginalL'auteur Bryan Crosby
Comme une "pour ce qu'il vaut" - dans mon cas, cette erreur a été signalée lorsque le code a été la tentative d'écriture dans le Journal des Événements Windows et de l'interactif, l'utilisateur n'a pas les autorisations suffisantes. C'était une petite application console que les exceptions enregistrées dans un fichier texte et le journal des événements (si désiré). En cas d'exception, le fichier texte a été mis à jour mais cette erreur a été jeté et n'est pas pris par la gestion des erreurs. La désactivation de la Journalisation des Événements cessé de l'erreur ne se produise.
OriginalL'auteur Kevin Newton
J'ai eu ce sur un ordinateur en particulier et de les remonter vers un objet de c# référencement d'un initialiseur
OriginalL'auteur Kirsten Greed
Juste au cas où une autre personne ayant le même problème, dans mon cas, j'ai constaté que mon windows service a été pris au piège dans une interminable boucle récursive accidentellement. Donc, Si quelqu'un d'autre a ce problème, prendre en compte les appels de méthode qui peut être à l'origine d'énormes boucles récursives.
OriginalL'auteur Rolando Retana