Export (0) Print
Expand All

How to: Write Services Programmatically 

If you choose not to use the Windows Service project template, you can write your own services by setting up the inheritance and other infrastructure elements yourself. When you create a service programmatically, you must perform several steps that the template would otherwise handle for you:

  • You must set up your service class to inherit from the ServiceBase class.

  • You must create a Main method for your service project that defines the services to run and calls the Run method on them.

  • You must override the OnStart and OnStop procedures and fill in any code you want them to run.

    NoteNote

    The Windows Service template and associated functionality is not available in the Standard Edition of Visual Studio. For more information, see Visual Studio Editions.

To write a service programmatically

  1. Create an empty project and create a reference to the necessary namespaces by following these steps:

    1. In Solution Explorer, right-click the References node and click Add Reference.

    2. On the .NET Framework tab, scroll to System.dll and click Select.

    3. Scroll to System.ServiceProcess.dll and click Select.

    4. Click OK.

  2. Add a class and configure it to inherit from ServiceBase:

    public class UserService1 : System.ServiceProcess.ServiceBase  
    {
    }
    
    
    public class UserService1 extends System.ServiceProcess.ServiceBase
    {
    }
    
    
  3. Add the following code to configure your service class:

    public UserService1() 
    {
        this.ServiceName = "MyService2";
        this.CanStop = true;
        this.CanPauseAndContinue = true;
        this.AutoLog = true;
    }
    
    
    public UserService1() 
    {
        this.set_ServiceName("MyService2");
        this.set_CanStop(true);
        this.set_CanPauseAndContinue(true);
        this.set_AutoLog(true);
    }
    
    
  4. Create a Main method for your class, and use it to define the service your class will contain; userService1 is the name of the class:

    public static void Main()
    {
        System.ServiceProcess.ServiceBase.Run(new UserService1());
    }
    
    
    public static void main()
    {
        System.ServiceProcess.ServiceBase.Run(new UserService1());
    }
    
    
  5. Override the OnStart method, and define any processing you want to occur when your service is started.

    protected override void OnStart(string[] args)
    {
        // Insert code here to define processing.
    }
    
    
    protected void OnStart(System.String[] args)
    {
        // Insert code here to define processing.
    }
    
    
  6. Override any other methods you want to define custom processing for, and write code to determine the actions the service should take in each case.

  7. Add the necessary installers for your service application. For more information, see How to: Add Installers to Your Service Application.

  8. Build your project by selecting Build Solution from the Build menu.

    NoteNote

    Do not press F5 to run your project — you cannot run a service project in this way.

  9. Create a setup project and the custom actions to install your service. For an example, see Walkthrough: Creating a Windows Service Application in the Component Designer.

  10. Install the service. For more information, see How to: Install and Uninstall Services.

See Also

Community Additions

ADD
Show:
© 2014 Microsoft