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....

14voto

Jamie Butterworth Points 104

J'ai obtenu cette erreur parce que j'ai mal lu la réponse acceptée ici : Créer un service Windows à partir d'un exécutable .

sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"

Pour <path_to_service_executable> j'utilisais le chemin du dossier de l'exécutable, par exemple C:\Folder .

Il doit s'agir du chemin d'accès à l'exécutable. , par exemple C:\Folder\Executable.exe .

10voto

Fawel Points 369

J'ai trouvé la solution :

1. Go to local service window(where all services found)
2. Just right click on your service name: 
3. click on "properties" 
4. go to "log on" tab
5. select "local system account"
6. click "ok"

Vous pouvez maintenant essayer de démarrer le service.

6voto

Akshay Anand Points 404

Dans mon cas, le suivi n'a pas été vérifié.

enter image description here

4voto

kudzai zishumba Points 71

Si vous obtenez le code d'erreur 5 "accès refusé", il est probable que votre service essaie d'interagir avec certains fichiers du système, par exemple en écrivant dans un fichier journal.

ouvrir les propriétés des services sélectionner log on et cochez l'option permettant au service d'interagir avec le bureau, click allow service to interact with desktop

3voto

santhosh Points 31

Cette erreur se produit lorsqu'il y a une erreur dans votre OnStart méthode. Vous ne pouvez pas ouvrir un hôte directement dans OnStart car elle ne s'ouvrira pas réellement lorsqu'elle sera appelée, mais attendra le contrôle. Vous devez donc utiliser un thread. Voici mon exemple.

public partial class Service1 : ServiceBase
{
    ServiceHost host;
    Thread hostThread;
    public Service1()
    {
        InitializeComponent();
         hostThread= new Thread(new ThreadStart(StartHosting));

    }

    protected override void OnStart(string[] args)
    {
        hostThread.Start();
    }

    protected void StartHosting()
    {
        host = new ServiceHost(typeof(WCFAuth.Service.AuthService));
        host.Open();
    }

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

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