Ich habe einen Dienst, dessen Laufzeit ich nicht kenne, ich schätze etwa 7 Sekunden. Aus irgendeinem Grund funktioniert der Dienst nach dem ersten Lauf nicht mehr und ich kann ihn nicht debuggen. Im Dienstemanager wird ständig "Start" angezeigt, und im Fenster "Prozess anhängen" kann ich ihn nicht finden.
Wenn ich versuche, ihn zu stoppen, erscheint die Stopp-Schaltfläche nur für eine Sekunde. Selbst wenn ich sie drücke, erhalte ich die Fehlermeldung "Windows konnte den Dienst 'Splive auf dem lokalen Computer nicht beenden. Der Dienst hat keinen Fehler zurückgegeben.
Wie lässt sich dieses Problem am besten lösen?
static void Main(string[] args)
{
ServiceBase.Run(new Program());
ServiceController service = new ServiceController();
service.ServiceName = "SpLive";
service.Start();
//Sp objSportingbet = new Sp();
//objSportingbet.getListingsFromSp();
}
public Program()
{
this.ServiceName = "SpLive";
}
protected override void OnStart(string[] args)
{
base.OnStart(args);
objSportingbet.getListingsFromSp();
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Interval = 7000;
timer1.Enabled = true;
timer1.Start();
}
protected override void OnStop()
{
base.OnStop();
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Interval = 7000;
timer1.Enabled = false;
timer1.Start();
}
private void timer1_Elapsed(object sender, EventArgs e)
{
ServiceController service = new ServiceController();
service.ServiceName = "Sp";
if (service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
}
if (service.Status == ServiceControllerStatus.Running)
{
service.Stop();
}
timer1.Stop();
}
private void InitializeComponent()
{
//
// Program
//
this.CanPauseAndContinue = true;
this.CanShutdown = true;
}