Showing posts with label sindows-service. Show all posts
Showing posts with label sindows-service. Show all posts

Wednesday, November 6, 2013

Create Windows Service Step-By-Step

Introduction

This step by step guide will help you to create simple Windows Service in Visual Studio.

Note: to enlarge image click on it.
Step 1:

Start Visual Studio and add new project Windows Service:


Your Solution Explorer should now look like this:


Step 2:

Set project properties as follow:





Step 3:

Add new component file and name it ‘XXXXInstaller.cs’ [XXXX= Windows Service name]


Step 4:

Open your WindowsService.cs ie DistributionService file and add:

using System;
using System.ServiceProcess;
using System.Timers;

namespace DistributionWindowsService
{
    partial class DistributionService : ServiceBase
    {
        private Timer _timer = null;
        public DistributionService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            try
            {
                EventLog.WriteEntry("Email service started : " + DateTime.Now);
                _timer = new Timer();
                _timer.Interval = 10000; //in milliseconds

                 EventLog.WriteEntry("Timer Interval is : " + _timer.Interval);

                // attach a function to elapsed event whenever time interval occur it will call this function
                _timer.Elapsed += timer_Elapsed;

                _timer.Start(); 
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry("Email service error : " + ex);
            }
            
        }

        protected override void OnStop()
        {
            EventLog.WriteEntry("Email service Stopped : "+DateTime.Now);
        }

        protected void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                _timer.Stop();
                //perform your action here 
                // It will be occur on each time elapsed
            }
            catch (Exception ex)
            {

            }
            finally
            {
                //restart the timer
                _timer.Start();
            }
        }
     
    }
}


Step 5:

Open your WindowsServiceInstaller.cs ie DistributionServiceInstaller.cs file and add:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;

namespace DistributionWindowsService
{
    [RunInstaller(true)]
    public partial class DistributionServiceInstaller : Installer
    {     

        public DistributionServiceInstaller()
        {
            ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
            ServiceInstaller serviceInstaller = new ServiceInstaller();

            //# Service Account Information
            serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
            serviceProcessInstaller.Username = null;
            serviceProcessInstaller.Password = null;

            //# Service Information
            serviceInstaller.DisplayName = "MyPerformance Distribution Service";
            serviceInstaller.StartType = ServiceStartMode.Automatic;
            serviceInstaller.Description = "Distribution of scheduled Emails.";

            //# This must be identical to the WindowsService.ServiceBase name
            //# set in the constructor of WindowsService.cs
            serviceInstaller.ServiceName = "DistributionWindowsService";
            serviceInstaller.AfterInstall += ServiceInstaller_AfterInstall;   
            this.Installers.Add(serviceProcessInstaller);
            this.Installers.Add(serviceInstaller);

        }
        private void ServiceInstaller_AfterInstall(object sender, InstallEventArgs e)
        {
            ServiceController sc = new ServiceController("DistributionWindowsService");
            sc.Start();
        }
    }
}


Step 6:

Build your solution

Step 7:

Open visual studio command prompt(if not works try run as administrator):


Step 8:

Open the physical folder and copy the path of WindowsService.exe file from

WindowsService>>Bin>>Debug>> WindowsService.exe

Step 9:

Write command in command prompt:

Installutil –i “complete path of file”

Step 10:

Check Service in “control panel>>Administrative services>>Service” and start the service if it is stop.


Step 11:

To uninstall windows service goto command prompt and write:

Installutil –u “complete path of file”


Step 12:

It is an optional step, if you don't want to run the application from command line then you can create a batch file Installer and Uninstaller for windows service. Add a file installer.bat open it with notepad or any editor:

@ECHO OFF
 
echo Installing WindowsService...
echo ---------------------------------------------------
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil /i "complete path of exe"
echo ---------------------------------------------------
echo Done.
pause

And for uninstaller add uninstaller.bat file and add:


@ECHO OFF
 
echo Un-Installing WindowsService...
echo ---------------------------------------------------
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil /u "complete file path of exe"
echo ---------------------------------------------------
echo Done.
pause 

Double click installer and uninstaller for particular actions(if not works try run as administrator).

You may also like to see:
For changing app.config you would need to restart windows service, for details and reasons please visit this page.
Life insurance policy, bank loans, software, microsoft, facebook,mortgage,policy,