Question

J'ai un service Windows qui exécute diverses opérations de surveillance du système.Cependant, lors de l'exécution de vérifications liées à SNMP, j'obtiens toujours une exception NullReference.Le code fonctionne correctement lorsqu'il est exécuté via l'interface utilisateur (sous mon nom d'utilisateur et mon mot de passe), mais toujours des erreurs s'exécutent en tant que service.J'ai essayé d'exécuter le service sous différents comptes d'utilisateurs (y compris le mien), sans succès.J'ai essayé de remplacer le code de surveillance SNMP en appelant l'applet de commande PowerShell get-snmp (à partir des /n NetCmdlets), mais cela génère la même erreur.

L'application avec laquelle je travaille est PolyMon.

Des idées?

Était-ce utile?

La solution

Quelques façons de déboguer :

  • Y a-t-il des informations supplémentaires dans le journal des événements Windows ?
  • Je pense que vous devriez pouvoir écouter une sorte d'événement d'exception globale comme Application_Exception dans les services Windows.Je ne me souviens pas du nom exact, mais vous pouvez au moins vider la trace de la pile à partir de là.
  • Vous devriez pouvoir démarrer le débogage du projet en mode service.

Certains extraits de code/trace de pile/informations seront certainement utiles.

Autres conseils

Vous pouvez attacher un débogueur au processus en cours avant de déclencher l'exception.Cela devrait vous donner une meilleure idée de ce qui se passe avec l'application.

Quelques choses que nous avons vues - plus sur les différences entre les services interactifs et les services, mais cela pourrait aider...

Une chose que nous avons vue et qui ne semble pas pertinente est la différence entre ce qui se trouve sur le chemin utilisateur et système.

Une autre chose que nous avons vue concerne les fichiers temporaires - le service que nous avions créait des lots dans le répertoire windows emp - nous l'avons retrouvé alors qu'il avait créé quelque chose comme 65 000 de ces fichiers et avait ainsi atteint la limite de ce qu'un répertoire peut contenir ...

Cordialement, Chris

J'ai déjà abordé ce genre de problèmes, si vous n'avez pas déjà trouvé la réponse, je suggère ce qui suit :

  • Activez le traçage/la journalisation dans toutes les applications et bibliothèques tierces que vous utilisez de telle sorte que les erreurs soient enregistrées dans des fichiers au lieu de stdout ou stderr.Souvent, vous y trouverez un indice.
  • Votre service Windows repose peut-être sur une configuration réseau Windows configurée avant le démarrage.Cela peut être dû à l'environnement (PATH, comme d'autres l'ont suggéré) ou à des « dépendances » sur d'autres services.

Geai.........

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top