windows - Systemfejl 5 Adgang nægtes, når du starter en .NET-tjeneste

Indlæg af Hanne Mølgaard Plasc

Problem



Når jeg forsøger at starte en tjeneste, jeg oprettede i Visual Studio, modtager jeg følgende fejl:


System error 5 has occurred.

Access is denied.


Jeg kører kommandolinjen med forhøjede privilegier, så det er ikke det problem. Er der noget sted jeg kan se for at se, hvilken fejl der opstår.

Bedste reference


For at få det til at arbejde havde jeg brug for at tilføje tilladelser til outputbakken \ debug-mappen til mit serviceprojekt.


Lokal service-kontoen har ikke tilladelser til output .exe-filen, og det var derfor fejlen opstod.

Andre referencer 1


Havde det samme problem.


Fast ved at køre tjenesten under 'Local System Account'


Indtast billedbeskrivelse her

Andre referencer 2


I mit tilfælde var løsningen lige så enkel: Kør kommandoprompt som administrator .

Andre referencer 3


Jeg ser dig har rettet problemet, men i virkeligheden skal du normalt ikke køre tjenesten fra et projekts bin-mappe alligevel - filerne skal placeres et eller andet sted projekt og profilafhængigt (f.eks. Under programfiler). Til fejlfinding (når den vil være i bin-mappen), kan du registrere, om det er en tjeneste i Main(), og hvis den køres interaktivt, skal du bare køre servicekoden direkte, snarere end den sædvanlige service-start opsætning.


Du kan registrere enten ved at tilføje et kommandolinjeprincip, eller du kan prøve kontrol Environment.UserInteractive.

Andre referencer 4


Lokal services-kontoen ser ikke ud til at være privilegeret til at kontrollere en tjeneste. Så i tjenestens LogOn Ejendom skal du ændre kontotypen til Lokalt system og tillade service at interagere med skrivebordet.


Sørg også for, at du installerer tjenesten ved hjælp af instalutil som administrator.


Endelig skal du køre kommandoprompten som administrator, når du vil køre en tjeneste fra kommandoprompten ved hjælp af kommandoen 'net start [[service name]]'.

Andre referencer 5


Jeg havde det samme problem, fordi mit projekt og dets kildekode var i en mappe, der havde NTFS 's Encrypting File System (EFS) aktiveret. Dette skyldes, at kompilerede enheder også krypteres, og at brugeren kører min tjeneste ikke har tilladelser til at dekryptere dem. Fjernelse af EFS var den nemme løsning til dette. Det kan gøres ved hjælp af kommandolinjen ved hjælp af CIPHER.EXE, som er et Windows-værktøj. [4]

Andre referencer 6


Jeg havde det samme problem, da jeg migrerede en tjeneste fra vs05 til vs2010, fra ramme 2.0 til ramme 4.0 på samme tid. Jeg fik Adgang nægtet. Så snart en ændring tilbage til ramme 2.0 fungerede det igen. Den?\% ¤ #\% u0026\% & Problemet var, at initialiseringsstrengen for tjenesten var forkert (?!). Strengen forventede citater i begyndelsen og i slutningen!


Før .... sti + servicenavn ''/parameter=1 'dette havde arbejdet med ramme 2.0


Efter .... 'sti + service navn' '/parameter=1'


Adgang nægtet har intet at gøre med problemet. Hvorfor ikke 'Path not found' eller 'missing parameter'

Andre referencer 7


En brugerkonto med administratorrettigheder vil spørge 'er du sikker?' I situationer, hvor administratorkontoen ikke bliver bedt om. Jeg havde dette problem med net stop netprofm.


For at fjerne prompten skal du gøre dette.


Kontrolpanel, Brugerkonti, Skift Brugerkonto Kontrolindstillinger, Aldrig underrette


Dette synes at give brugerkontoen med administratorrettigheder den samme adfærd som en administratorkonto.

Andre referencer 8


Kør det fra Task Scheduler med højeste privilegier, og det vil fungere.

Andre referencer 9


Løbte bare på dette problem, efter at jeg havde kørt en 'sc config' for at ændre binPath af tjenesten.


Den eneste løsning, der fungerede for mig, var at 'sc slette' tjenesten og installere igen.


Ting fungerede perfekt efter det.