2010-10-11 7 views
0

Un service de fenêtres écrit en C# qui interagit réellement avec MS Word fonctionne très bien lorsqu'il est exécuté dans le débogage mode..or exécuter à partir de l'invite de commande ..service écrit en C# ne fonctionne pas après l'avoir installé

Mais cela ne fonctionne pas après l'avoir installé en tant que service. Le compte qui exécute le service est un administrateur (local).

Server 2008 R2 ... n'a jamais eu un problème avant d'utiliser en 2003

+1

pouvez-vous poster des extraits de code? –

+0

Que disent les journaux de Windows? –

+0

Utilisez-vous un assembly interop pour interagir avec Office? – Sorax

Répondre

3

La meilleure façon de comprendre « pourquoi mon service ne fonctionne pas? » utilise

  try 
      { 

      } 
      catch (Exception ex) 
      { 
       EventLog.WriteEntry(ex.Message + ex.StackTrace); 
      } 

dans sur Démarrer, Votre principale méthode, etc .. événement.

0

Le compte de service a-t-il des droits "Log on as a service"?

+0

yes..it does ... où je définis le compte Admin (local) pour exécuter le service – Mike

0

Une exception a été émise par la cible d'une invocation. à System.RuntimeType.InvokeDispMethod (String nom, BindingFlags invokeAttr, Object object, Object [] args, Boolean [] parrefModifiers, culture Int32, String [] namedParameters) à System.RuntimeType.InvokeMember (String name, BindingFlags bindingFlags, Classeur de classeur , Object object, Objet [] providedArgs, Modificateur ParameterModifier [], CultureInfo culture, String [] namedParams) at System.Type.InvokeMember (Nom de la chaîne, BindingFlags invokeAttr, Classeur du classeur, Object target, Object [] args)

1

Sous Windows Server 2008 R2, les services que vous intégrez à .Net Framework et qui nécessitent un accès au système de fichiers pour s'exécuter doivent disposer des privilèges appropriés pour être exécutés. Dans mon cas, j'avais besoin d'installer le service, ouvrir la fenêtre Services, arrêter mon service, cliquer avec le bouton droit et éditer les propriétés du service pour utiliser un compte d'administrateur lors de l'exécution. Une fois que j'ai fait cela, le service a commencé à fonctionner comme prévu. Maintenant, ce n'est peut-être pas la meilleure chose à faire tout le temps, donc vous voudrez probablement définir un compte personnalisé sur le système qui a le moins de privilèges requis pour exécuter votre service.

Questions connexes