Re: Windows Services
From: Jay B. Harlow [MVP - Outlook] (Jay_Harlow_MVP_at_msn.com)
Date: 05/17/04
- Next message: Herfried K. Wagner [MVP]: "Re: .NET rebar control"
- Previous message: Brian Henry: ".NET rebar control"
- In reply to: Eric: "Windows Services"
- Next in thread: Gavin Jacobs: "Re: Windows Services"
- Reply: Gavin Jacobs: "Re: Windows Services"
- Reply: Eric: "Re: Windows Services"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 17 May 2004 10:32:34 -0500
Eric,
Are you doing too much work in the OnStart method?
Have you tried debugging your service:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtskdebugginwindowsservice.asp
Normally what I do is include a healthy amount of event log messages (via
.EventLog) especially in any asynchronous events that may be raised within
the service. Plus I will include Debug.Write & Trace.Write in strategic
locations.
Something like:
Public Class MyService
Inherits System.ServiceProcess.ServiceBase
Private WithEvents Timer1 As System.Timers.Timer
Public Sub New()
MyBase.New()
' This call is required by the Component Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call
AddHandler AppDomain.CurrentDomain.UnhandledException, _
AddressOf AppDomain_UnhandledException
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.
Timer1.Start()
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your
service.
Timer1.Stop()
End Sub
Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As
System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
Try
EventLog.WriteEntry("Timer elapsed handler started",
EventLogEntryType.Information)
' Do work here
EventLog.WriteEntry("Timer elapsed handler finished",
EventLogEntryType.Information)
Catch ex As Exception
EventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error)
End Try
End Sub
Private Sub AppDomain_UnhandledException(ByVal sender As Object, _
ByVal e As UnhandledExceptionEventArgs)
EventLog.WriteEntry(e.ExceptionObject.ToString(),
EventLogEntryType.Error)
End Sub
End Class
Note EventLog is inherited from ServiceBase and will be the normal event log
for your service, you can override ServiceBase.EventLog if you want to use a
different Event log.
I configure Debug & Trace to go to a log file.
In your app.config of your Windows Service project:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener"
initializeData="MyService.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Note the UnhandledException event is not working as I expected in the above,
so I put the Elapsed event in its own Try/Catch.
Hope this helps
Jay
"Eric" <anonymous@discussions.microsoft.com> wrote in message
news:2A1EF895-7623-42B4-85EA-3FFD9925EA0C@microsoft.com...
> Hi,
>
> I built a service that watch file in a directory. I use a simple
filewatcher and add a handler to do something when a file is created. I have
the following problem. I can build it, I can install it, I can start it but
when I start it I have a message that the service is stop because it does
nothing and it doesn't execute the code in the service. Please if you have
any idea it will be appreciate.
>
> Thanks you
>
- Next message: Herfried K. Wagner [MVP]: "Re: .NET rebar control"
- Previous message: Brian Henry: ".NET rebar control"
- In reply to: Eric: "Windows Services"
- Next in thread: Gavin Jacobs: "Re: Windows Services"
- Reply: Gavin Jacobs: "Re: Windows Services"
- Reply: Eric: "Re: Windows Services"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|