skaaman
asked on
Service Program Starts and then Stops?
I have a simple Service program that compiles and installs OK. It Shows up in services but it's not started. I select start and the following message appears:
The service on Local computer started and then stopped. Some services stop automatically if the have no work to do, for example the Performance Logs and Alerts service.
Heres the code. It's pretty bare bones.
thx
Public Sub New()
MyBase.New()
' This call is required by the Component Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call
CanStop = True
CanPauseAndContinue = True
ServiceName = "Archive Backup Service"
timer = New Timer
timer.Interval = 1
AddHandler timer.Elapsed, AddressOf OnTimer
End Sub
'UserService overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' The main entry point for the process
<MTAThread()> _
Shared Sub Main()
Dim ServicesToRun() As System.ServiceProcess.Serv iceBase
' More than one NT Service may run within the same process. To add
' another service to this process, change the following line to
' create a second service object. For example,
'
' ServicesToRun = New System.ServiceProcess.Serv iceBase () {New Service1, New MySecondUserService}
'
ServicesToRun = New System.ServiceProcess.Serv iceBase() {New ArcBack}
System.ServiceProcess.Serv iceBase.Ru n(Services ToRun)
End Sub
'Required by the Component Designer
Private components As System.ComponentModel.ICon tainer
' NOTE: The following procedure is required by the Component Designer
' It can be modified using the Component Designer.
' Do not modify it using the code editor.
<System.Diagnostics.Debugg erStepThro ugh()> Private Sub InitializeComponent()
'
'ArcBack
'
End Sub
#End Region
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.
EventLog.WriteEntry("Archi ve Backup Started")
timer.Enabled = True
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your service.
EventLog.WriteEntry("Archi ve Backup Stopped")
timer.Enabled = False
End Sub
Protected Overrides Sub OnPause()
EventLog.WriteEntry("Archi ve Backup Paused")
timer.Enabled() = False
End Sub
Protected Overrides Sub OnContinue()
EventLog.WriteEntry("Archi ve Backup Continuing")
timer.Enabled = True
End Sub
Protected Sub OnTimer(ByVal source As Object, ByVal e As ElapsedEventArgs)
EventLog.WriteEntry("The timer fired!")
End Sub
End Class
The service on Local computer started and then stopped. Some services stop automatically if the have no work to do, for example the Performance Logs and Alerts service.
Heres the code. It's pretty bare bones.
thx
Public Sub New()
MyBase.New()
' This call is required by the Component Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call
CanStop = True
CanPauseAndContinue = True
ServiceName = "Archive Backup Service"
timer = New Timer
timer.Interval = 1
AddHandler timer.Elapsed, AddressOf OnTimer
End Sub
'UserService overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' The main entry point for the process
<MTAThread()> _
Shared Sub Main()
Dim ServicesToRun() As System.ServiceProcess.Serv
' More than one NT Service may run within the same process. To add
' another service to this process, change the following line to
' create a second service object. For example,
'
' ServicesToRun = New System.ServiceProcess.Serv
'
ServicesToRun = New System.ServiceProcess.Serv
System.ServiceProcess.Serv
End Sub
'Required by the Component Designer
Private components As System.ComponentModel.ICon
' NOTE: The following procedure is required by the Component Designer
' It can be modified using the Component Designer.
' Do not modify it using the code editor.
<System.Diagnostics.Debugg
'
'ArcBack
'
End Sub
#End Region
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.
EventLog.WriteEntry("Archi
timer.Enabled = True
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your service.
EventLog.WriteEntry("Archi
timer.Enabled = False
End Sub
Protected Overrides Sub OnPause()
EventLog.WriteEntry("Archi
timer.Enabled() = False
End Sub
Protected Overrides Sub OnContinue()
EventLog.WriteEntry("Archi
timer.Enabled = True
End Sub
Protected Sub OnTimer(ByVal source As Object, ByVal e As ElapsedEventArgs)
EventLog.WriteEntry("The timer fired!")
End Sub
End Class
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I also found that this error will occur if you screw up your app.config file. I had my service working fine. Then, I went into make some changes to the app.config. Added a new key that had a bad character in the value "<" tisk... tisk...
It'll compile just fine but the the app.config becomes invalid and that'll stop the whole thing from working. The only reason I found it was I noticed a little warning in the task list about the invalid character.
It'll compile just fine but the the app.config becomes invalid and that'll stop the whole thing from working. The only reason I found it was I noticed a little warning in the task list about the invalid character.
ASKER
The solution was a Log On configuration issue. I was playing around with the properties and under the Log On tab, Log in as:, This Account was selected with a default server and password in place. I changed Log in as to Local System Account and the problem was resolved. I'll have to poke around to see If I can set this on install.
thx
Kurt