Introduction:
Here I will explain what windows service is, uses of windows service and how to create windows service in c#.
Description:
Today I am writing article to explain about windows services. First we will see what a window service is and uses of windows service and then we will see how to create windows service.
Now the service is installed. To start and stop the service, go to Control Panel --> Administrative Tools --> Services. Right click the service and select Start.
Now the service is started, and you will be able to see entries in the log file we defined in the code.
Now open the log file in your folder that Output of the file like this
Here I will explain what windows service is, uses of windows service and how to create windows service in c#.
Description:
Today I am writing article to explain about windows services. First we will see what a window service is and uses of windows service and then we will see how to create windows service.
What is Windows Service?
Windows Services are applications that run in the background and perform various tasks.
The applications do not have a user interface or produce any visual
output. Windows Services are started automatically when computer is
booted. They do not require a logged in user in order to execute and can
run under the context of any user including the system. Windows
Services are controlled through the Service Control Manager where they
can be stopped, paused, and started as needed.
Creating Windows Service is very easy with visual studio just follow the below steps to create windows service
Create a Windows Service
Creating Windows Service is very easy with visual studio just follow the below steps to create windows service
Open visual studio --> Select File --> New -->Project--> select Windows Service
And give name as WinServiceSample
|
After give WinServiceSample name click ok button after create our project that should like this
|
In Solution explorer select Service1.cs file and change Service1.cs name to ScheduledService.cs
because in this project I am using this name if you want to use another
name for your service you should give your required name.
After change name of service open ScheduledService.cs in design view right click and select Properties now one window will open in that change Name value to ScheduledService and change ServiceName to ScheduledService. Check below properties window that should be like this
|
After change Name and ServiceName properties again open ScheduledService.cs in design view and right click on it to Add Installer files to our application.
The
main purpose of using Windows Installer is an installation and
configuration service provided with Windows. The installer service
enables customers to provide better corporate deployment and provides a
standard format for component management.
After click on Add installer a designer screen added to project with 2 controls: serviceProcessInstaller1 and ServiceInstaller1
Now right click on serviceProcessInstaller1 and select properties in that change Account to LocalSystem
|
After set those properties now right click on ServiceInstaller1 and change following StartType property to Automatic and give proper name for DisplayName property
|
After completion of setting all the properties now we need to write the code to run the windows services at scheduled intervals.
If you observe our project structure that contains Program.cs file that file contains Main() method otherwise write the Main() method like this in Program.cs file
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new ScheduledService()
};
ServiceBase.Run(ServicesToRun);
}
|
After completion of adding Main() method open ScheduledService.cs file and add following namespaces in codebehind of ScheduledService.cs file
using System.IO;
using System.Timers;
|
If you observe code behind file you will find two methods those are
protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
|
We
will write entire code in these two methods to start and stop the
windows service. Write the following code in code behind to run service
in scheduled intervals
//Initialize the timer
Timer timer = new Timer();
public ScheduledService()
{
InitializeComponent();
}
//This method is used to raise event during start of service
protected override void OnStart(string[] args)
{
//add this line to text file during start of service
TraceService("start service");
//handle Elapsed event
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
//This statement is used to set interval to 1 minute (= 60,000 milliseconds)
timer.Interval = 60000;
//enabling the timer
timer.Enabled = true;
}
//This method is used to stop the service
protected override void OnStop()
{
timer.Enabled = false;
TraceService("stopping service");
}
private void OnElapsedTime(object source, ElapsedEventArgs e)
{
TraceService("Another entry at "+DateTime.Now);
}
private void TraceService(string content)
{
//set up a filestream
FileStream fs = new FileStream(@"d:\ScheduledService.txt",FileMode.OpenOrCreate, FileAccess.Write);
//set up a streamwriter for adding text
StreamWriter sw = new StreamWriter(fs);
//find the end of the underlying filestream
sw.BaseStream.Seek(0, SeekOrigin.End);
//add the text
sw.WriteLine(content);
//add the text to the underlying filestream
sw.Flush();
//close the writer
sw.Close();
}
|
If you observe above code in OnStart method I written event ElapsedEventHandler this event is used to run the windows service for every one minute
After
completion code writing build the application and install windows
service. To install windows service check this post here I explained
clearly how to install windows service and how to start windows service.
Now the service is started, and you will be able to see entries in the log file we defined in the code.
Now open the log file in your folder that Output of the file like this
No comments:
Post a Comment