Ik heb een Windows Service gemaakt die om de minuut records uit een database gehaalt en deze verwerkt in emailtjes. De klasse's die dit verzorgen werken uitstekend.
Het gaat allemaal goed de eerste paar dagen. Daarna voert de service ineens niks meer uit. Geen foutmelding of niks.
Ik heb al geprobeerd:
- tijd van 60 seconden naar 10 minuten te veranderen.
- ipv timer aan te maken in code hem te slepen vanaf de toolbox
- een logger erbij gemaakt om fouten in klasse's die ik gebruik te registreren
- kijken of er nog sql connecties gemaakt worden als ik denk dat de service niet meer werkt, dit is het geval
- uitgeprobeerd op een windows 2000 server, en een windows 2003 server
- gezocht op google. Er was nog iemand met een soortgelijk probleem met een timer in een windows service. Maar helaas stonden er geen antwoorden bij.
- Als ik de services manager bekijk dan werkt hij prima... nergens geen foutmelding in de evenlogs
- als ik de service herstart dan werkt hij weer voor een paar dagen
- ik heb nu een windows forms applicatie gemaakt op dezelfde manier die elke 5 seconden een regel wegschrijft, ik zal kijken hoe lang deze meegaat.
Het gaat allemaal goed de eerste paar dagen. Daarna voert de service ineens niks meer uit. Geen foutmelding of niks.
Ik heb al geprobeerd:
- tijd van 60 seconden naar 10 minuten te veranderen.
- ipv timer aan te maken in code hem te slepen vanaf de toolbox
- een logger erbij gemaakt om fouten in klasse's die ik gebruik te registreren
- kijken of er nog sql connecties gemaakt worden als ik denk dat de service niet meer werkt, dit is het geval
- uitgeprobeerd op een windows 2000 server, en een windows 2003 server
- gezocht op google. Er was nog iemand met een soortgelijk probleem met een timer in een windows service. Maar helaas stonden er geen antwoorden bij.
- Als ik de services manager bekijk dan werkt hij prima... nergens geen foutmelding in de evenlogs
- als ik de service herstart dan werkt hij weer voor een paar dagen
- ik heb nu een windows forms applicatie gemaakt op dezelfde manier die elke 5 seconden een regel wegschrijft, ik zal kijken hoe lang deze meegaat.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| Imports System.ServiceProcess Imports System.Timers Public Class Service1 Inherits System.ServiceProcess.ServiceBase ' Specify what you want to happen when the Elapsed event is raised. Public Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs) Try Dim SendOutAd As New SendOutAds() Dim SendOutVC As New SendOutVCards() Dim SendOutOrder As New SendOutOrders() SendOutAd.SendNow() SendOutVC.SendNow() SendOutOrder.SendNow() Catch ex As Exception Dim Logit As New LogError() Logit.WriteToLog(ex) End Try End Sub Protected Overrides Sub OnStart(ByVal args() As String) ' Add code here to start your service. This method should set things ' in motion so your service can do its work. Dim aTimer As New System.Timers.Timer() AddHandler aTimer.Elapsed, AddressOf OnTimedEvent ' Set the Interval to 60 seconds. aTimer.Interval = 60000 aTimer.Enabled = True End Sub Protected Overrides Sub OnStop() ' Add code here to perform any tear-down necessary to stop your service. End Sub End Class |