J'obtiens cette erreur lorsque j'essaye de démarrer un service Windows que j'ai créé en C #:
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 RÉSEAU, mais j'ai maintenant un autre problème:
Mise à jour # 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 de service n’a été trouvé dans le fichier de configuration, ou qu’aucun point de terminaison n’a été défini dans l’élément de service. à System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints (Description de ServiceDescription) à System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (Description de ServiceDescription, ServiceHostBase serviceHost) à System.ServiceModel.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (Description de ServiceDescription, ServiceHostBase serviceHost) à System.ServiceModel.ServiceModel.Description.DispatcherBuilder. TimeSpan timeout) à System.ServiceModel.Channels.CommunicationObject.
la source
Réponses:
Je me rends compte que ce post est vieux, mais il n'y a pas de solution marquée et je voulais juste expliquer comment j'ai résolu cela.
La première
Error 5: Access Denied
erreur a été résolue en accordant des autorisations sur le répertoire de sortie auNETWORK SERVICE
compte.La deuxième
Started and then stopped
erreur semble être un message générique lorsque quelque chose a causé une faute au service. Vérifiez l'Observateur d'événements (en particulier les «Journaux Windows> Application») pour le vrai message d'erreur.Dans mon cas, c'était un mauvais paramètre de configuration de service dans app.config.
la source
Ordinateur -> Gérer -> Service -> Propriétés de [votre service]. Ensuite, l'onglet avec les informations de compte. Jouez avec ces paramètres, comme exécuter le service avec un compte administrateur ou plus.
Cela l'a fait pour moi.
EDIT: Ce qui peut également être le problème, c'est que la plupart des services sont exécutés en tant que comptes
LOCAL SERVICE
ouLOCAL SYSTEM
. Maintenant, lorsque vous exécutezC:/my-admin-dir/service.exe
avec ces comptes mais qu'ils ne sont pas autorisés à exécuter quoi que ce soit dans ce répertoire, vous obtiendrezerror 5
. Recherchez donc l'exécutable du service, RMB le répertoire -> Propriétés -> Sécurité et assurez-vous que le compte avec lequel le service est exécuté est dans la liste des utilisateurs qui sont autorisés à avoir un contrôle total sur l'annuaire.la source
Cela a fonctionné pour moi.
la source
J'ai également eu la même erreur, elle a été résolue par un clic droit sur Service> Propriétés> Ouvrir une session> Connectez-vous en tant que: Compte système local.
la source
Assurez-vous que les
Path to executable
points vers un exécutable réel (Service de clic droit -> Propriétés -> onglet Général). Via powershell (et sc.exe), vous pouvez installer un service sans pointer vers un exécutable réel ... ahem.la source
J'ai la solution:
maintenant vous pouvez essayer de démarrer le service.
la source
J'obtenais cette erreur parce que j'avais mal lu la réponse acceptée d'ici: Créer un service Windows à partir de l'exécutable .
Pour
<path_to_service_executable>
, j'utilisais le chemin du dossier de l'exécutable, par exempleC:\Folder
.Il doit s'agir du chemin de l'exécutable , par exemple
C:\Folder\Executable.exe
.la source
Dans mon cas, le suivi n'a pas été vérifié.
la source
Pour moi - le dossier à partir duquel le service devait s'exécuter, et les fichiers qu'il contient, ont été cryptés à l'aide de l'option "Crypter" de Windows. Enlever cela et - voila!
la source
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 laOnStart
méthode car il ne s'ouvrira pas réellement lorsqu'il sera appelé, mais à la place il attendra le contrôle. Vous devez donc utiliser un fil. Ceci est mon exemple.la source
si vous avez un code d'erreur d'accès refusé 5. alors probablement dans votre code, votre service essaie d'interagir avec certains fichiers du système comme l'écriture dans un fichier journal
ouvrez l'
log on
onglet de sélection des propriétés des services et cochez l'option pour permettre au service d'interagir avec le bureau,la source
Dans mon cas, j'ai dû ajouter «Utilisateurs authentifiés» dans la liste des «Noms de groupe ou d'utilisateur» dans le dossier où l'exécutable était installé.
la source
L'une des causes de cette erreur est des autorisations insuffisantes (utilisateurs authentifiés) dans votre dossier local. Pour autoriser les «Utilisateurs authentifiés» Ouvrez l'onglet de sécurité dans les propriétés de votre dossier, modifiez et ajoutez le groupe «Utilisateurs authentifiés» et appliquez les modifications.
Une fois que cela a été fait, j'ai pu exécuter des services même via un compte de service réseau (avant cela, je ne pouvais fonctionner qu'avec un compte système local).
la source
J'ai eu le service Windows hébergé en utilisant OWIN et TopShelf. Je n'ai pas pu le démarrer. Même erreur - "Accès refusé 5"
J'ai fini par donner toutes les permanentes à mon bin / Debug.
Le problème n'était toujours pas résolu.
J'ai donc jeté un coup d'œil dans les journaux d'événements et il s'est avéré que le
Microsoft.Owin.Host.HttpListener
n'était pas inclus dans la bibliothèque de classes contenant la classe de démarrage OWIN.Assurez-vous donc de vérifier le journal des événements pour identifier la cause première avant de commencer à entrer dans les permanentes, etc.
la source
Votre code peut s'exécuter dans le contexte de sécurité d'un utilisateur qui n'est pas autorisé à démarrer un service.
Puisque vous utilisez WCF, je suppose que vous êtes dans le contexte du SERVICE RÉSEAU.
voir: http://support.microsoft.com/kb/256299
la source
Utilisez le compte LocalSystem au lieu du compte LocalService dans Service Installer.
Vous pouvez le faire soit en modifiant la vue de conception de votre programme d'installation de service ci-dessous:
Propriétés de Service Process Installer -> Définir le compte sur LocalSystem.
ou en faisant ci-dessous le changement dans le fichier designer.cs de votre programme d'installation de service:
la source
Cliquez avec le bouton droit sur le
service
dans service.msc et sélectionnezproperty
.Vous verrez un chemin de dossier sous
Path to executable
comme C: \ Users \ Me \ Desktop \ project \ Tor \ Tor \ tor.exeAccédez à C: \ Users \ Me \ Desktop \ project \ Tor et faites un clic droit sur Tor.
Sélectionnez
property
,security
,edit
puisadd
. Dans le champ de texte entrezLOCAL SERVICE
, cliquez sur ok puis cochez la caseFULL CONTROL
Cliquez à
add
nouveau sur puis entrezNETWORK SERVICE
, cliquezok
, cochez la caseFULL CONTROL
Cliquez ensuite sur ok (en bas)
la source
Jetez un oeil à
Process Utilities > Process monitor
partir http://www.sysinternals.com .C'est un outil qui vous permet de surveiller ce que fait un processus. Si vous surveillez ce processus de service, vous devriez voir un accès refusé quelque part et sur quelle ressource l'accès refusé est donné.
la source
Pour l'erreur 5, j'ai fait le contraire de la solution ci-dessus. "La première erreur 5: erreur d'accès refusé a été résolue en accordant des autorisations au répertoire de sortie au compte SERVICE RÉSEAU."
J'ai changé le mien en compte local, au lieu du compte de service réseau, et parce que j'étais connecté en tant qu'administrateur, cela a fonctionné
la source
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 du service Windows. Vous devez aller dans l'onglet sécurité et sélectionner le service local en tant qu'utilisateur et donner un accès complet. Vous devriez faire de même pour l'exe aussi.
la source
J'ai surveillé sppsvc.exe en utilisant le moniteur de processus et j'ai découvert qu'il essayait d'écrire sur la clé HKEY_LOCAL_MACHINE \ SYSTEM \ WPA. Après avoir donné les autorisations au SERVICE RÉSEAU sur cette clé, j'ai pu démarrer le service et Windows a soudainement reconnu qu'il était à nouveau activé.
la source
J'ai accidentellement configuré mon service pour qu'il s'exécute car la
Local service
solution consistait à passer àLocal System
la source
Après m'être cogné contre mon bureau pendant quelques heures à essayer de comprendre cela, ma méthode "Main" s'est vidée de son code!
Autres solutions que j'ai trouvées:
S'assurer que le nom du service dans InitializeComponent () correspond à la propriété du nom du service du programme d'installation
Et un bon redémarrage du serveur ne fait pas de mal
Szhlopp
la source
Dans certains cas, le système manque d'espace libre sur le disque local.
la source
J'ai eu ce problème aujourd'hui sur un service que je développais, et aucune des autres suggestions sur cette question n'a fonctionné. Dans mon cas, j'avais une dépendance .dll manquante dans le dossier d'où le service s'exécutait.
Lorsque j'ai ajouté les dépendances, le problème a disparu.
la source
Dans mon cas, j'ai gardé le projet sur le bureau et pour accéder au bureau, nous devons ajouter une autorisation au dossier.J'ai donc simplement déplacé mon dossier de projet vers le répertoire C: \ maintenant cela fonctionne comme un charme.
la source
Je ne sais pas si ma réponse aurait du sens pour beaucoup, mais moi aussi j'étais confronté au même problème et la solution était scandaleusement simple. Tout ce que j'avais à faire était d'ouvrir le programme que j'avais utilisé pour exécuter le code en tant qu'administrateur. (clic droit -> Exécuter en tant qu'administrateur).
C'était tout.
la source
Comme le suggère la fenêtre contextuelle d'erreur, cela est lié à l'autorisation. Exécutez donc le service en tant que compte "LocalSystem".
Pour faire de même, faites un clic droit sur
serviceProcessInstaller -> Properties -> Account
et réglez-le sur au"LocalSystem"
lieu de la valeur par défaut"User"
. Installez le service et le tour est joué.la source
consultez le journal des événements Windows pour un message d'erreur détaillé. J'ai résolu la même chose après avoir vérifié le journal des événements.
la source
J'ai eu ce problème sur un service que je déployais, et aucune des autres suggestions sur cette question n'a fonctionné. Dans mon cas, c'était parce que mon .config (xml) n'était pas valide. J'ai fait une erreur de copier-coller lors de la copie de qualif vers prod.
la source