120 votes

Erreur 5 : Accès refusé lors du démarrage d'un service Windows

J'obtiens cette erreur lorsque j'essaie de démarrer un service Windows que j'ai créé en C# :

alt text

Mon code jusqu'à présent :

private ServiceHost host = null;

public RightAccessHost()
{
    InitializeComponent();
}

protected override void OnStart(string[] args)
{
    host = new ServiceHost(typeof(RightAccessWcf));
    host.Open();
}

protected override void OnStop()
{
    if (host != null)
        host.Close();
    host = null;
}

Mise à jour n° 1

J'ai résolu le problème ci-dessus en accordant des autorisations au compte SERVICE DE RÉSEAU mais j'ai maintenant un autre problème :

alt text

Mise à jour n°2

Le service ne peut pas être démarré. System.InvalidOperationException : Le service 'RightAccessManagementWcf.RightAccessWcf' n'a aucun point de terminaison d'application (non-infrastructure). Cela peut être dû au fait qu'aucun fichier de configuration n'a été trouvé pour votre application, qu'aucun élément de service correspondant au nom du service n'a pu être trouvé dans le fichier de configuration, ou qu'aucun point d'extrémité n'a été défini dans l'élément de service. at System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription description) at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) at System.ServiceModel.ServiceHostBase.InitializeRuntime() at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) at RightAccessHosting.RightAccessHost.OnStart(String[] args) in C:\Users....

0voto

Darshana Points 42

Si vous obtenez cette erreur sur une machine serveur, essayez de donner accès au dossier dans lequel vous avez obtenu le véritable exe de service Windows. Vous devez aller dans l'onglet sécurité et sélectionner le service local en tant qu'utilisateur et lui donner un accès complet. Faites de même pour l'exe.

0voto

meda Points 11955

J'ai accidentellement configuré mon service pour qu'il s'exécute en tant que Local service La solution a été de passer à Local System

0voto

Szhlopp Points 11

Après m'être tapé la tête contre mon bureau pendant quelques heures en essayant de résoudre ce problème, je me suis rendu compte que ma méthode "Main" avait été vidée de son code !

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] 
{ 
    new DMTestService()
};
ServiceBase.Run(ServicesToRun);

Autres solutions que j'ai trouvées :

  • Mise à jour du cadre .NET vers 4.0

  • S'assurer que le nom du service dans la fonction InitializeComponent() correspond à la propriété du nom du service de l'installateur

    private void InitializeComponent()
    ...
    this.ServiceName = "DMTestService";
  • Et un bon redémarrage du serveur ne fait pas de mal

Szhlopp

0voto

Alexander Puchkov Points 1231

Dans certains cas, le système n'a plus d'espace libre sur le disque local.

0voto

John Carpenter Points 2455

J'ai rencontré ce problème aujourd'hui sur un service que je développe, et aucune des autres suggestions de cette question n'a fonctionné. Dans mon cas, il manquait une dépendance .dll dans le dossier à partir duquel le service est exécuté.

Lorsque j'ai ajouté les dépendances, le problème a disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X