I never needed a Windows Service application before, and I came across this type of project while googling for some other .Net capabilities, so I thought to give it a try. A Windows Service is a very useful toy when you need running tasks in background. How you do it:
Step 1: Create a new Windows Service project inside Visual Studio (2005 or 2008) and name it whatever you like:
Step 2: Rename the Service1.cs auto-generated class (I called it TestWindowsService); add a Timer object and edit OnStart and OnStop events added by Visual Studio:
public partial class TestWindowsService : ServiceBase
Timer timer = new Timer(2000);
protected override void OnStart(string args)
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
protected override void OnStop()
timer.Enabled = false;
void timer_Elapsed(object sender, ElapsedEventArgs e)
using (TextWriter tw = new StreamWriter("C:\output" + DateTime.Now.ToString("yyMMddHHmmss") + ".txt"))
tw.WriteLine(“Text written at ” + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
There are also other events that you can edit, like OnContinue, OnCustomCommand, OnPause, OnPowerEvent, OnShutdown; for this, check the definition of ServiceBase class, from which your service is derived.
Step 3: Add an installer for your service: in the design view for your service class, right click and choose Add Installer:
Visual Studio will add an installer class, called ProjectInstaller.cs, having two components in design mode, serviceProcessInstaller and serviceInstaller. Modify the properties of these components as described below:
If you don’t set the Account of the serviceProcessInstaller component as LocalSystem, leaving it with User value instead, you’ll have to provide a user and a password on the installation process.
Step 4: Install the service you just created. For this, go to Start -> Programs -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 Command Prompt, and use the following command on the new opened window:
InstallUtil /i TestWindowsService.exe
Be sure to provide the full path to your executable file. To uninstall the service, use
InstallUtil /u TestWindowsService.exe
Step 5: Start the service by going to Services console (from Administrative Tools under Windows XP) and start the service
Note: The service will create several text files at every 2 seconds, so be sure to stop it after you tested its functionality.