J'essaie de démarrer un processus externe à partir d'un service Windows .NET. Dans le passé, j'ai utilisé la surcharge Process.Start()
qui prend le chemin de l'exécutable et une chaîne de ligne de commande. Cela marche. Mais maintenant, je voudrais commencer le processus et le faire fonctionner dans le contexte d'un utilisateur particulier. Je demande donc cette version de Start()
System.Diagnostics.Process.Start() ne peut pas démarrer le processus lorsqu'il est appelé à partir du service Windows
public static Process Start(
string fileName,
string userName,
SecureString password,
string domain)
Cependant, quand je l'appelle la méthode, l'application que je suis en train de courir génère une exception non gérée:
The application failed to initialize properly (0xc0000142). Click on OK to terminate the application.
J'ai essayé de lancer différentes applications et ils génèrent tous la même exception. J'ai exécuté le code en dehors du service Windows et l'application démarre correctement.
Y a-t-il un moyen de faire fonctionner cela dans un service Windows?
Cela ressemble à un doublon de cette question: http://stackoverflow.com/questions/362419/using-process-start-to-start-a-process-as-a-different-user-from-within -une fenêtre –
une solution finale avec un exemple de code source complet à ce sujet? – Kiquenet