Array
(
)

Windows Service - Erro ao iniciar

Thomás Moreira
   - 16 out 2011

Estou seguindo o curso aqui do site: Criando um serviço de monitoramento e venho enfrentando um problema, há algumas semanas.
O que ocorre é o seguinte: Depois que o serviço é instalado com sucesso, ao tentar iniciá-lo recebo a seguinte mensagem de erro: Erro 1053: O serviço não respondeu à requisição de início ou controle em tempo hábil. Apos essa mensagem, tento iniciá-lo novamente e o mesmo ocorre com sucesso. E é sempre assim, da primeira vez que tento inciar o serviço, sempre recebo a mensagem de erro citada, porem, na segunda tentativa tudo corre normalmente. Ja pesquisei várias coisas, tentei várias alternativas, ja refiz o projeto varias vezes e nao consigo sucesso.
Estou usando Visual Studio 2010 (aspnet 4.0), SQL Server 2008 e Windows 7.
Ja tentei contato com o instrutor do curso, mas nao obtive sucesso.
Alguem pode ajudar por favor!!? Estou precisando muito resolver isso!
Desde ja agradeço pela atenção de todos!
Abraços!

Di_cardoso
|
MVP
    21 out 2011

Cara, pode ser uma série de problemas, aconteceu isso comigo há um tempo atrás e o problema foi por causa do timer que ultrapassava o limite, dependendo do problema você pode resolver utilizando threads no tratamento.

Abraços,

Di_cardoso
|
MVP
    21 out 2011

Qualquer coisa poste o seu código para ver o que está acontecendo ...

Thomás Moreira
   - 22 out 2011

Obrigado pela resposta Diego.

Eu ja tinha lido algumas coisas a respeito de fazer com threads.
Vou ver se faço esse teste no final de semana. Caso continue com os erros, eu posto o codigo.

Valeu!

Thomás Moreira
   - 02 nov 2011

Dei uma pesquisada na net e fiz um teste usando threads e continua do mesmo jeito, com o mesmo erro.

Abaixo o codigo do service: (A classe clsDevice executa as procedures que gravam as informações no banco de dados. Os codigos que estão comentados são os originais, e os novos usando threads estão entre comentarios //novo.)

Desde ja agradeço pela ajuda!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;
using System.Threading;

namespace InvMon
{
partial class InvMon : ServiceBase
{

//Timer tmrMain;

//Novo
private System.Threading.Timer tmrMain;
//Novo

clsDevice objDevice;

public InvMon()
{
InitializeComponent();
//tmrMain = new Timer(30000);

//tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Elapsed);

}

static void Main()
{

//Cria um array de objetos do tipo da classe e inicia o objeto
ServiceBase[] service = new ServiceBase[] { new InvMon() };
ServiceBase.Run(service);

}

protected override void OnStart(string[] args)
{
try
{

//base.OnStart(args);
//tmrMain.Enabled = true;

//Novo

tmrMain = new System.Threading.Timer(tmrMain_Elapsed, null, 10000, 10000);

//Novo

}
catch (Exception ex)
{
EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
}
}

protected override void OnStop()
{
try
{
//tmrMain.Enabled = false;
//base.OnStop();

}
catch (Exception ex)
{
EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
}
}

public void tmrMain_Elapsed(object source)
{

try
{

objDevice = new clsDevice();
objDevice.AtualizarDados();
objDevice.InsereInfoDevice(CPU, Convert.ToDouble(pcCPU.NextValue()));
objDevice.InsereInfoDevice(MEMORIA RAM, Convert.ToDouble(pcMemoriaRAM.NextValue()));

}
catch (Exception ex)
{
EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);

}

}

//public void tmrMain_Elapsed(object sender, ElapsedEventArgs e)
//{

// try
// {
// tmrMain.Stop();

// objDevice = new clsDevice();
// objDevice.AtualizarDados();
// objDevice.InsereInfoDevice(CPU, Convert.ToDouble(pcCPU.NextValue()));
// objDevice.InsereInfoDevice(MEMORIA RAM, Convert.ToDouble(pcMemoriaRAM.NextValue()));

// //EventLog.WriteEntry(Teste., EventLogEntryType.Information);

// }
// catch (Exception ex)
// {
// EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);

// }

//}

}
}

Thomás Moreira
   - 08 nov 2011

Galera, alguem pode me ajudar nesse problema?

Valeu!!!