Windows Service - Erro ao iniciar
16/10/2011
0
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
Posts
21/10/2011
Diego Cardoso
Abraços,
21/10/2011
Diego Cardoso
22/10/2011
Thomás Moreira
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!
02/11/2011
Thomás Moreira
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);
// }
//}
}
}
08/11/2011
Thomás Moreira
Valeu!!!
Clique aqui para fazer login e interagir na Comunidade :)