CruiseControl.NET exécuter en tant que service Windows et comme un processus autonome se comporte différemment

StackOverflow https://stackoverflow.com/questions/2802583

Question

J'ai un projet qui est en cours de construction en utilisant CruiseControl.NET. Le projet contient une « tâche MSBuild » qui dirige la construction du projet ainsi que les tests unitaires. Le test unitaire à son tour est juste une tâche MSBuild « exec » qui exécute un exécutable.

Le test unitaire implique un certain .NET Remoting. Et lorsque les tests unitaires sont exécutés par l'invite de commande du système, la fenêtre du logiciel ouvre, exécutez des tests et les sorties de processus.

Lorsque je force une construction à travers le tableau de bord de bande, la construction se bloque à l'endroit où le test de l'unité se met en marche. La fenêtre du logiciel ne s'ouvre pas, mais l'exécutable est en cours d'exécution. Si le processus est tué par l'explorateur de tâches, la construction passe par un statut « d'échec ». Cela se produit lorsque je lance CCNet en tant que service Windows.

Si je lance CCNet directement (pas en tant que service de Windows) et la force d'une construction à travers le tableau de bord Web, la construction et les tests unitaires passent par bien comme prévu. (Avec la fenêtre de l'ouverture du logiciel vers le haut.)

Il semble qu'il y ait une impasse dans le cas où CCNet est exécuté en tant que service Windows. Je suppose qu'elle est liée à la sortie standard / flux d'erreur.

  1. Est-ce est un problème connu?

  2. Qu'est-ce que pourrait être le problème passe?

  3. Toutes les suggestions sur le débogage cela?

  4. Comment puis-je contourner?

(J'utilise la version 1.4.4 CCNet SP1)

Était-ce utile?

La solution

Lorsque CCNet est en cours d'exécution en tant que service, il ne va pas avoir accès à l'écran, donc ne vous attendez pas à voir quoi que ce soit sur l'écran dans cette configuration. La première chose que je voudrais vérifier les autorisations est - assurez-vous que le service fonctionne comme un compte disposant des autorisations d'accès toutes les ressources dont vous avez besoin. Vous avez également des fichiers journaux CCNet, que vous pouvez trouver via Dashboard.

Sur une note de côté, essayez TeamCity au lieu de CCNet, ses 10 années à venir.

Autres conseils

Peut-être que cette réponse vous aidera: Windows delphi ne peut pas télécharger le fichier à partir d'Internet

Vous devez savoir que lors de l'exécution CCNet comme une application (DOSBox) il utilise les variables d'environnement et tous les droits à partir du compte connecté . Ainsi, il peut se connecter à un serveur, utilisez des mots de passe mis en cache, obtenir les variables de registre pour ce compte.

mais quand couru en tant que service, le compte est celui que vous avez fourni: LocalSystem pour exampe, où env. varibales ne sont pas les mêmes.

Alors, ce que vous pouvez faire est de changer le compte de service CCNet pour le test. Changez-le à votre compte utilisateur (avec mot de passe), et je suis sûr que cela fonctionnera mieux!

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