Estou recebendo este erro quando tento iniciar um serviço do Windows que criei em C #:
Meu código até agora:
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;
}
Atualização # 1
Resolvi o problema acima concedendo permissões para a conta SERVIÇO DE REDE, mas agora tenho outro problema:
Atualização # 2
O serviço não pode ser iniciado. System.InvalidOperationException: o serviço 'RightAccessManagementWcf.RightAccessWcf' não tem nenhum ponto de extremidade de aplicativo (sem infraestrutura). Isso pode ser porque nenhum arquivo de configuração foi localizado para seu aplicativo, ou porque nenhum elemento de serviço correspondente ao nome do serviço pôde ser localizado no arquivo de configuração, ou porque nenhum terminal foi definido no elemento de serviço. em System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints (descrição de ServiceDescription) em System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (descrição de ServiceDescription, ServiceHostBase serviceHost) em System.ServiceModelize.ServiceHostice.Nodel TimeSpan timeout) em System.ServiceModel.Channels.CommunicationObject.
fonte
Respostas:
Sei que esta postagem é antiga, mas não há uma solução marcada e só queria contar como resolvi isso.
O primeiro
Error 5: Access Denied
erro foi resolvido concedendo permissões para o diretório de saída daNETWORK SERVICE
conta.O segundo
Started and then stopped
erro parece ser uma mensagem genérica quando algo falhava no serviço. Verifique o Visualizador de eventos (especificamente 'Logs do Windows> Aplicativo') para ver a mensagem de erro real.No meu caso, era uma configuração de serviço ruim em app.config.
fonte
Computador -> Gerenciar -> Serviço -> propriedades [seu serviço]. Em seguida, a guia com as informações da conta. Brinque com essas configurações, como executar o serviço com conta de administrador ou algo assim.
Isso fez tudo para mim.
EDIT: O que também pode ser o problema é que, a maioria dos serviços são executados como
LOCAL SERVICE
ouLOCAL SYSTEM
contas. Agora, quando você executaC:/my-admin-dir/service.exe
com essas contas, mas elas não têm permissão para executar nada nesse diretório, você obteráerror 5
. Portanto, localize o executável do serviço, RMB do diretório -> Propriedades -> Segurança e certifique-se de que a conta com a qual o serviço é executado está na lista de usuários que podem ter controle total sobre o diretório.fonte
Isso funcionou para mim.
fonte
Também recebi o mesmo erro, resolvido clicando com o botão direito do mouse em Serviço> Propriedades> Fazer logon> fazer logon como: Conta do sistema local.
fonte
Certifique-se de que
Path to executable
aponta para um executável real (clique com o botão direito do mouse em serviço -> Propriedades -> guia Geral). Via powershell (e sc.exe) você pode instalar um serviço sem apontar para um executável real ... ahem.fonte
Eu tenho a solução:
agora você pode tentar iniciar o serviço.
fonte
No meu caso, o seguinte não foi verificado.
fonte
Eu estava recebendo este erro porque interpretei mal a resposta aceita aqui: Criar serviço do Windows a partir do executável .
Pois
<path_to_service_executable>
, eu estava usando o caminho da pasta do executável, por exemploC:\Folder
.Precisa ser o caminho do executável , por exemplo
C:\Folder\Executable.exe
.fonte
Para mim - a pasta na qual o serviço deveria ser executado e os arquivos nela contidos foram criptografados usando a opção "Criptografar" do Windows. Removendo isso e - voila!
fonte
Este erro ocorre quando há um erro em seu
OnStart
método. Você não pode abrir um host diretamente noOnStart
método porque ele não abrirá realmente quando for chamado, mas em vez disso, aguardará o controle. Então você tem que usar um fio. Este é meu exemplo.fonte
se você tiver um código de erro de acesso negado 5. então provavelmente em seu código seu serviço está tentando interagir com alguns arquivos no sistema, como gravar em um arquivo de log
abra a
log on
guia de seleção de propriedades de serviços e marque a opção para permitir que o serviço interaja com a área de trabalho,fonte
Uma das causas para esse erro são permissões insuficientes (Usuários autenticados) em sua pasta local. Para dar permissão para 'Usuários autenticados' Abra a guia de segurança nas propriedades da sua pasta, edite e adicione o grupo 'Usuários autenticados' e aplique as alterações.
Uma vez feito isso, eu era capaz de executar serviços até mesmo através da conta de serviço de rede (antes disso, eu só conseguia executar com a conta do sistema local).
fonte
Eu tinha o serviço do Windows hospedado usando OWIN e TopShelf. Eu não fui capaz de iniciá-lo. Mesmo erro - "Acesso negado 5"
Acabei dando todas as permissões para meu bin / Debug.
O problema ainda não foi resolvido.
Dei uma olhada nos logs de eventos e descobri que o
Microsoft.Owin.Host.HttpListener
não estava incluído na biblioteca de classes que contém a classe de inicialização OWIN.Portanto, certifique-se de verificar o log de eventos para identificar a causa raiz antes de começar a entrar em permanentes, etc.
fonte
No meu caso, tive que adicionar 'Usuários autenticados' na lista de 'Nomes de grupos ou usuários' na pasta onde o executável foi instalado.
fonte
Seu código pode estar sendo executado no contexto de segurança de um usuário que não tem permissão para iniciar um serviço.
Já que você está usando o WCF, suponho que esteja no contexto do SERVIÇO DE REDE.
consulte: http://support.microsoft.com/kb/256299
fonte
Use a conta LocalSystem em vez da conta LocalService no Service Installer.
Você pode fazer isso seguindo as alterações abaixo na visualização do design do instalador do serviço:
Propriedades do instalador do processo do serviço -> Definir conta para LocalSystem.
ou fazendo a alteração abaixo no arquivo designer.cs do instalador do serviço:
fonte
Clique com o botão direito no
service
in service.msc e selecioneproperty
.Você verá um caminho de pasta em
Path to executable
C: \ Users \ Me \ Desktop \ project \ Tor \ Tor \ tor.exeNavegue até C: \ Users \ Me \ Desktop \ project \ Tor e clique com o botão direito em Tor.
Selecione
property
,security
,edit
e depoisadd
. No campo de texto, digiteLOCAL SERVICE
, clique em ok e marque a caixaFULL CONTROL
Clique em
add
novamente e depois entreNETWORK SERVICE
, cliqueok
, marque a caixaFULL CONTROL
Em seguida, clique em ok (na parte inferior)
fonte
Ter um olhar para
Process Utilities > Process monitor
a partir http://www.sysinternals.com .Esta é uma ferramenta que permite monitorar o que um processo faz. Se você monitorar este processo de serviço, deverá ver um acesso negado em algum lugar e em qual recurso o acesso negado é concedido.
fonte
Para o erro 5, fiz o oposto da solução acima. "O primeiro erro 5: Erro de acesso negado foi resolvido dando permissões ao diretório de saída para a conta NETWORK SERVICE."
Mudei a minha para a conta local, em vez da conta de serviço de rede, e como estava conectado como administrador, funcionou
fonte
Se você está recebendo este erro em uma máquina servidor, tente dar acesso à pasta que você obteve o exe de serviço real do Windows. Você deve ir para a guia de segurança e selecionar o serviço local como usuário e deve dar acesso total. Você deve fazer o mesmo para o exe também.
fonte
Monitorei sppsvc.exe usando o monitor de processo e descobri que ele estava tentando gravar na chave HKEY_LOCAL_MACHINE \ SYSTEM \ WPA. Depois de conceder permissões para SERVIÇO DE REDE nesta chave, consegui iniciar o serviço e o Windows de repente reconheceu que ele foi ativado novamente.
fonte
Eu acidentalmente configurei meu serviço para ser executado, pois a
Local service
solução era mudar paraLocal System
fonte
Depois de bater minha mão contra minha mesa por algumas horas tentando descobrir isso, de alguma forma meu método "Principal" foi esvaziado de seu código!
Outras soluções que encontrei:
Certificando-se de que o nome do serviço dentro de InitializeComponent () corresponde à propriedade do nome do serviço do instalador
E uma boa reinicialização do servidor não faz mal
Szhlopp
fonte
Em caso de sistema ficar sem espaço livre no disco local.
fonte
Tive esse problema hoje em um serviço que estava desenvolvendo e nenhuma das outras sugestões sobre essa questão funcionou. No meu caso, eu tinha uma dependência .dll ausente na pasta de onde o serviço era executado.
Quando adicionei as dependências, o problema foi embora.
fonte
No meu caso, mantive o projeto na área de trabalho e para acessar a área de trabalho precisamos adicionar permissão à pasta, então simplesmente movi a pasta do meu projeto para o diretório C: \ agora está funcionando perfeitamente.
fonte
Não sei se minha resposta faria sentido para muitos, mas também enfrentei o mesmo problema e a solução era absurdamente simples. Tudo o que tive que fazer foi abrir o programa que usei para executar o código como administrador. (clique com o botão direito -> Executar como Administrador).
Isso foi tudo.
fonte
Como o pop-up de erro sugere, isso está relacionado à permissão. Portanto, execute o serviço como conta "LocalSystem".
Para fazer o mesmo, clique com o botão direito
serviceProcessInstaller -> Properties -> Account
e defina-o como em"LocalSystem"
vez do padrão"User"
. Instale o serviço e pronto.fonte
verifique o log de eventos do Windows para obter mensagens de erro detalhadas. Resolvi o mesmo após verificar o log de eventos.
fonte
Tive esse problema em um serviço que estava implantando e nenhuma das outras sugestões sobre essa questão funcionou. No meu caso, era porque meu .config (xml) não era válido. Cometi um erro de copiar e colar ao copiar de qualif para prod.
fonte