Giter Site home page Giter Site logo

windowsservicehost's Introduction

WindowsServiceHost

Simple Windows Service hosting library. Allows to install service with installutil.exe into Service Control Manager (SCM) or run as a Console Application.

Build status NuGet version

Why

Although Topshelf is really nice, it doesn't support installing services with installutil, which might be a show-stopper sometimes...

Requirements

.NET 4.6.x

Usage

In Console (or Windows) Application Project of your service solution:

  1. Reference WindowsServiceHost NuGet package

  2. Create a class, derived from WindowsService

public class MyServiceHost : WindowsService
{
///
}
  1. In the class, created on the previous step, implement function GetServiceConfiguration()
protected override ServiceConfiguration GetServiceConfiguration()
  => new ServiceConfiguration
   {
      ServiceName = "MyServiceName",
      DisplayName = "MyService Display Name",
      OnStart = Start,  // method to be executed on service start
      OnStop = Stop,    // method to be executed on service stop
      Account = ServiceAccount.User,    // account, under which the service will be running
      Installers = new[] {new EventLogInstaller()}  // any additional Installer you would like to be executed as well
    };
  1. Implement Start() and Stop() methods, referenced in the GetServiceConfiguration()

  2. In Main() method instantiate an object of the class create at step (1) and call Run() method on it:

internal static class Program
{
  private static void Main()
    => new MyServiceHost().Run();
}

Command-line arguments

The following command-line arguments are supported:

  • multiple installations of a service on the same machine:

installutil /serviceName="service_instance_name" /displayName="service_instance_display_name" MyService.exe

installutil /serviceName="service_instance_name" MyService.exe /uninstall

  • unattended installation with specific user account:

installutil /userName="user_name" /password="pwd" MyService.exe

  • installation with pre-defined account:

installutil /account="LocalService|NetworkService|LocalSystem" MyService.exe

windowsservicehost's People

Contributors

iiwaasnet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.