Nouveau service Windows Installé, ne démarre pas: "erreur système 2 ... Le système ne peut pas trouver le fichier spécifié."

J'ai installé avec succès plusieurs autres utilisateurs .Net windows services. Le nouveau que j'ai récemment écrit était très similaire aux autres, et bien qu'il soit installé sans erreurs - Lorsqu'il commence à utiliser le contrôleur de service, il n'a pas été capable de démarrer avec la boîte de dialogue d'erreur: System error 2 ... system cannot find the file specified.

Après une longue période et une horreur, la seule chose que je pouvais trouver, ce qui était significativement différent de ce service, - C'est ce que le chemin et le nom du fichier exécutable étaient au moins sur 10 Les symboles sont plus longs que l'un de mes autres services. Avec la réduction du chemin et du nom .exe et réinstaller le service fonctionné bien: pas d'erreurs! Je ne peux que supposer que ma manière précédente, service ou nom .exe Étaient trop longs.

En outre, il conviendrait de mentionner que j'ai utilisé du code emprunté "service driver", Mine intégré. exe, Pour le traitement de l'installation/Supprimer le service sur le contrôleur de service via des appels win API. Cela peut limiter les caractères cachés dans ce module de pilote de service.

Je n'ai pas pu trouver de documents liés à windows, Pour confirmer s'il existe une limite de caractères système pour le chemin ou le nom de service que j'ai dépassé. Je creuse dans le pilote de service lorsqu'il permet de voir le temps et je verrai si ce sera un problème. En attendant, je souhaite la bienvenue à une idée.
Invité:

Dominique

Confirmation de:

J'ai expérimenté certains services de test et j'ai constaté que mon problème n'était pas causé par une longueur d'une propriété. /"erreur système 2 ... system Impossible de trouver le fichier spécifié "/. Mon installateur de service intégré utilise trois propriétés: ServiceName, ServiceTitle, ServiceDescription. Lors de l'installation, j'ai constaté qu'il enregistre le chemin complet du service dans le registre, mais cela ne prend pas simplement le nom réel exe /assembly/, Il utilise une propriété ServiceName Construire un moyen! Mon problème était ce nom ServiceName et assembly n'a pas coïncidé, le fichier n'a donc pas été trouvé. J'ai utilisé la demande de registre powershell, Ouvrir le chemin et a finalement remarqué une différence de là. Quand j'ai remarqué ce problème, je n'ai pas remarqué que lorsque j'ai coupé le nom du service de ce qu'il était – que je viens d'utiliser le nom assembly sans pour autant .exe, Et c'était que cela le corrigeait et non seulement réduit.

Hannah

Confirmation de:

J'ai eu un problème similaire avec le service où j'ai reçu la même erreur.

Je suis allé à:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YourServiceName\ImagePath

Mon 'ImagePath' a été installé sur un disque virtuel appelé "W:\", qui existe sur "C:\".

J'ai remplacé ce chemin comme l'emplacement réel du fichier sur le disque C:\, puis le service a commencé avec succès

Giselle

Confirmation de:

Dans mon cas, j'ai ouvert l'équipe Promt, Baisée K. exe Et l'a installé à partir de là. Par conséquent, je n'ai pas entré au total. Dès que j'ai utilisé tout le long chemin, cela a fonctionné.

Vous devez donc soit régler le service tout entière, soit ajouter un chemin de fichier. exe à PATH Dans les variables système.


SC CREATE "Service-Name" binpath="D:\full-path-to-service\service.exe"


Ou ajouter
D:\full-path-to-service\

dans PATH variable et utilisation


SC CREATE "Service-Name" binpath="service.exe"



En outre, assurez-vous que la manière est correcte. Parce qu'une fois que je l'ai installé avec le mauvais moyen et que j'ai été installé avec succès, mais quand j'ai essayé de l'exécuter, j'ai eu la même erreur.

Christine

Confirmation de:

Mon problème était que lors de la création d'un service avec l'aide de l'équipe Powershell Les dames ajoutées au registre:
<c:\path\to\service\service.exe>

.


Replacing &lt; and &gt; with " fixed it for me.


</c:\path\to\service\service.exe>

Christine

Confirmation de:

J'ai eu le même problème, rien n'a résolu cette erreur, puis je l'ai décidée

ne pas

En utilisant le chemin
c:\Windows\System32

Pour stocker un fichier de service exécutable!

Babette

Confirmation de:

Dans mon cas, le problème a été causé par une erreur dans la procédure de démarrage. DriverEntry /Dans mon cas, c'était un conducteur kernel-mode/ Renvoie une mauvaise valeur de l'état. Je pense que cette situation s'applique au régime utilisateur.

Pour répondre aux questions, connectez-vous ou registre