[2.0] Service windows ne fait rien
Salut,
J'essaie de créer mon tout premier service windows. Je m'inspire donc du tutoriel et de cette discussion qui s'en est inspirée, mais je n'arrive à rien.
Je soupçonne une mauvaise utilisation du timer. J'ai vu ici et là comme réponse "utilise un de ces timers System.Timers.Timer ou System.Threads.Timer plutôt que System.Windows.Forms.Timer".
mais bon, le tuto utilise le windows.forms, le fil dont je m'inspire aussi, le glisser/déposer le propose. Donc avant tout autre changement je souhaiterais que ça fonctionne avec System.Windows.Forms.Timer.
Pour que vous m'aidiez, je n'aime pas trop ça et j'en suis désolé, je n'ai pas d'autre choix que de poster le code complet. Code qui n'est pas non plus conséquent tout de même.
SMemoire.vb :
Code:
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 38 39 40 41
| Imports System.Net.Mail
Public Class SMemoire
Protected Overrides Sub OnStart(ByVal args() As String)
' Ajoutez ici le code pour démarrer votre service. Cette méthode doit
' démarrer votre service.
EventLog1.WriteEntry("Démarrage du service")
Timer2.Enabled = True
End Sub
Protected Overrides Sub OnStop()
' Ajoutez ici le code pour effectuer les destructions nécessaires à l'arrêt de votre service.
EventLog1.WriteEntry("Arrêt du service")
Timer2.Enabled = False
End Sub
Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Dim smtp As SmtpClient = New SmtpClient
Dim message As MailMessage = New MailMessage
smtp.Host = "smtp.smtp.com"
message.To.Clear()
message.To.Add("f@c.com")
message.From = New MailAddress("f@c.com")
message.Subject = "Service Windows"
message.Body = "Je teste le service Windows"
smtp.Send(message)
Timer2.Stop()
EventLog1.WriteEntry("Email envoyé%")
End Sub
Public Sub New()
' Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
Timer2.Interval = 60000
Timer2.Start()
End Sub
End Class |
SMemoire.Designer.vb :
Code:
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| Imports System.ServiceProcess
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class SMemoire
Inherits System.ServiceProcess.ServiceBase
'UserService remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
' Point d'entrée principal du processus
<MTAThread()> _
<System.Diagnostics.DebuggerNonUserCode()> _
Shared Sub Main()
Dim ServicesToRun() As System.ServiceProcess.ServiceBase
' Plusieurs services NT s'exécutent dans le même processus. Pour ajouter
' un autre service à ce processus, modifiez la ligne suivante
' pour créer un second objet service. Par exemple,
'
' ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
'
ServicesToRun = New System.ServiceProcess.ServiceBase() {New SMemoire}
System.ServiceProcess.ServiceBase.Run(ServicesToRun)
End Sub
'Requise par le Concepteur de composants
Private components As System.ComponentModel.IContainer
' REMARQUE : la procédure suivante est requise par le Concepteur de composants
' Elle peut être modifiée à l'aide du Concepteur de composants.
' Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.EventLog1 = New System.Diagnostics.EventLog
Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).BeginInit()
'
'EventLog1
'
Me.EventLog1.Log = "JournalMemoire"
Me.EventLog1.Source = "ServiceMemoire"
'
'SMemoire
'
Me.ServiceName = "SMemoire"
CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).EndInit()
End Sub
Friend WithEvents EventLog1 As System.Diagnostics.EventLog
Friend WithEvents Timer2 As System.Windows.Forms.Timer
End Class |
Voyez-vous ce que je fais de mal?
Merci par avance.