Pergunta

Eu tenho um serviço do Windows NET Framework 1.1 que funciona em um servidor, mas em outro o método OnStart não está sendo chamado. Eu tenho uma instrução trace como a primeira linha na substituição OnStart e não está sendo executado. Nenhuma exceção é lançada e o gerente de controle de serviço do Windows acha que o serviço foi iniciado corretamente.

Alguém tem uma idéia do que poderia manter o método OnStart de ser chamado?

Edit:. Eis as definições .config para saída de rastreamento

<configuration>
    <system.diagnostics>
        <trace autoflush="true" indentsize="4">
            <listeners>
                <add name="LogFileWriter" type="System.Diagnostics.TextWriterTraceListener,System" 
                        initializeData="c:\interface.log" />
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>
Foi útil?

Solução 3

Esta acabou sendo uma questão muito obscura com um único servidor que impediu o construtor para a instância do serviço de execução.

Outras dicas

Se você estiver escrevendo seu rastreamento a um EventLogTrace ouvinte é possível que a conta de serviço na segunda máquina não tem direitos suficientes para acessar o log de eventos. Veja a minha resposta a esta pergunta:

Windows Service execução, mas logs de eventos não funciona

O que outras atividades ocorrem no evento OnStart que sugerem o evento não está disparando?

Se OnInit está sendo chamado, em seguida, substituí-lo e definir o manipulador de si mesmo

protected override void OnInit(EventArgs e) {
  this.Start += new System.EventHandler(OnStart);
  base.OnInit(e);
}

Se OnInit não é chamado, acrescentando AutoEventWireup = "true" para <% @ Page seção pode ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top