Pablo
hace 16 años
Es la primera vez que elaboro un servicio windows, estoy ocupando VS2008 SP1
con VB. He encontrado un ejemplo interesante y lo he realizado.
Supuestamente todo funciona bien, incluso ya instalé el servicio en mi
computador (Windows XP Profesional SP3). El código va así:
Public Class Service1
Private WithEvents Temporizador As System.Timers.Timer
Protected Overrides Sub OnStart(ByVal args() As String)
Temporizador = New System.Timers.Timer()
Me.Temporizador.Interval = 30000
Me.Temporizador.Start()
Me.Temporizador.Enabled = True
Me.Escribir("Servicio iniciado")
End Sub
Protected Overrides Sub OnStop()
Me.Temporizador.Stop()
Me.Escribir("Servicio detenido")
End Sub
Private Sub Temporizador_Elapsed(ByVal sender As Object, ByVal e As
System.Timers.ElapsedEventArgs) Handles Temporizador.Elapsed
Me.Escribir("Servicio ejecutándose")
End Sub
Private Sub Escribir(ByVal Mensaje As String)
Dim Conexion As New SqlConnection
Dim Comando As New SqlCommand
Try
Conexion = New
SqlConnection("Server=localhost;Database=BasePruebas;Integrated
Security=true;")
Comando = New SqlCommand("NSERT INTO MyServiceLog (vc_Status,
dt_Created) VALUES ('" & Mensaje & "',getdate())", Conexion)
Conexion.Open()
Comando.ExecuteNonQuery()
Conexion.Close()
Catch ex As Exception
System.Diagnostics.Debug.WriteLine(ex.Message)
Finally
Comando.Dispose()
Conexion.Dispose()
End Try
End Sub
End Class
Lo veo entre los servicios instalados pero al dar iniciar me muestra el
siguiente mensaje:
El servicio Service1 se inició en el equipo local y después se detuvo.
Algunos servicios se detienen automáticamente si no tienen nada que hacer,
por ejemplo, el servicio Añertas y registro de rendimiento.
¿debería modificar algo en el código para que el servicio se mantenga en
ejecución?
Gracias por sus comentarios.
con VB. He encontrado un ejemplo interesante y lo he realizado.
Supuestamente todo funciona bien, incluso ya instalé el servicio en mi
computador (Windows XP Profesional SP3). El código va así:
Public Class Service1
Private WithEvents Temporizador As System.Timers.Timer
Protected Overrides Sub OnStart(ByVal args() As String)
Temporizador = New System.Timers.Timer()
Me.Temporizador.Interval = 30000
Me.Temporizador.Start()
Me.Temporizador.Enabled = True
Me.Escribir("Servicio iniciado")
End Sub
Protected Overrides Sub OnStop()
Me.Temporizador.Stop()
Me.Escribir("Servicio detenido")
End Sub
Private Sub Temporizador_Elapsed(ByVal sender As Object, ByVal e As
System.Timers.ElapsedEventArgs) Handles Temporizador.Elapsed
Me.Escribir("Servicio ejecutándose")
End Sub
Private Sub Escribir(ByVal Mensaje As String)
Dim Conexion As New SqlConnection
Dim Comando As New SqlCommand
Try
Conexion = New
SqlConnection("Server=localhost;Database=BasePruebas;Integrated
Security=true;")
Comando = New SqlCommand("NSERT INTO MyServiceLog (vc_Status,
dt_Created) VALUES ('" & Mensaje & "',getdate())", Conexion)
Conexion.Open()
Comando.ExecuteNonQuery()
Conexion.Close()
Catch ex As Exception
System.Diagnostics.Debug.WriteLine(ex.Message)
Finally
Comando.Dispose()
Conexion.Dispose()
End Try
End Sub
End Class
Lo veo entre los servicios instalados pero al dar iniciar me muestra el
siguiente mensaje:
El servicio Service1 se inició en el equipo local y después se detuvo.
Algunos servicios se detienen automáticamente si no tienen nada que hacer,
por ejemplo, el servicio Añertas y registro de rendimiento.
¿debería modificar algo en el código para que el servicio se mantenga en
ejecución?
Gracias por sus comentarios.