none
Service Windows - Arrêt immédiat !! RRS feed

  • Question

  • Bonjour,

    J'ai créé un petit service en VB.NET 2008 (framework 3.5) permettant d'afficher un message (je sais, c'est pas propre, mais c'est plus pour le debugging que pour la release...) dès qu'une entrée est ajoutée dans une table particulière d'une base. L'installation se déroule sans problèmes, mais lorsque je veux lancer mon service, j'ai le message suivant :
    ---------------------------
    Services
    ---------------------------
    The AlertSMS service on Local Computer started and then stopped.  Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service.
    ---------------------------
    OK  
    ---------------------------

    Le code est pourtant bien présent et bien placé (si j'en crois toute la doc que j'ai lue). J'ai longuement cherché une solution sur divers forums, en vain...
    Je déclare mon timer dans la fonction OnStart(), puis je le lie à la fonction Timer_Tick pour que l'exécution se fasse à intervalle régulier.

    Voici le code :
    ------------------------------------------------------------------------------------------------------------------------------------
    Public Class AlertSMS

        Protected Overrides Sub OnStart(ByVal args() As String)
            Dim time As System.Threading.Timer
            Dim callBack As New TimerCallback(AddressOf Timer_Tick)
            time = New System.Threading.Timer(callBack, Nothing, 0, 50)
            MsgBox("Le service surveille maintenant la table Alert...", MsgBoxStyle.Information, "Service démarré")
        End Sub

        Public Sub Timer_Tick(ByVal state As Object)
            'Parcours de la liste des entrées de la table Alert
            Dim allalerts As New DAL.AlertCollection
            allalerts.Load()
            For Each elem As DAL.Alert In allalerts.GetCollection()
                MsgBox("Nouvelle alerte : " + vbCrLf + "Message #" + elem.MsgID, MsgBoxStyle.Exclamation, "Attention")
                '*** Traitement de l'alerte ***
                elem.Delete()
                elem.Save()
            Next
        End Sub

    End Class
    ------------------------------------------------------------------------------------------------------------------------------------

    Merci de votre aide
    mardi 27 mai 2008 12:48