Windows Service - Erro ao iniciar

.NET

16/10/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!
Thomás Moreira

Thomás Moreira

Curtidas 0

Respostas

Diego Cardoso

Diego Cardoso

16/10/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,
GOSTEI 0
Diego Cardoso

Diego Cardoso

16/10/2011

Qualquer coisa poste o seu código para ver o que está acontecendo ...
GOSTEI 0
Thomás Moreira

Thomás Moreira

16/10/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!
GOSTEI 0
Thomás Moreira

Thomás Moreira

16/10/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);

// }


//}

}
}


GOSTEI 0
Thomás Moreira

Thomás Moreira

16/10/2011

Galera, alguem pode me ajudar nesse problema?

Valeu!!!
GOSTEI 0
POSTAR