14

I have a windows service application developed in C#. The same service needs to be run with different config files. To run on these on the same machine I would need to change the name of the service. I can create multiple copies of the solution, but not sure how to change the names of the services.

Thanks

Jeff LaFay
  • 12,882
  • 13
  • 71
  • 101
Prady
  • 10,978
  • 39
  • 124
  • 176

3 Answers3

12

In your win service class that derives from ServiceBase, there is a property that is inherited that you can set called ServiceName. You could make an app.config, add a setting for the service name and have your win service class assign that property accordingly. That way each service name will be unique as long as you change the setting in the app.config.

Jeff LaFay
  • 12,882
  • 13
  • 71
  • 101
  • 1
    This example goes through it in a bit more detail should anyone need it: http://www.codeproject.com/Articles/21320/Multiple-Instance-NET-Windows-Service – Joel Mitchell Mar 19 '13 at 11:37
  • 1
    For Joel's link, the specifics of how to obtain the ServiceName from app.config from within the installer didn't work for me (probably out of date since it was written for .NET 2.0), but this solution worked fine: http://stackoverflow.com/questions/8516701/how-to-get-windows-service-name-from-app-config – Lukas S. Sep 15 '14 at 15:13
3

Service name can also be edited via ProjectInstaller design mode. There is a property called ServiceName in the ServiceInstaller.

Baz Guvenkaya
  • 1,482
  • 3
  • 17
  • 26
  • 1
    Additionally, the name coming up in the EventLog is set in the **Service** design mode itself, through property **ServiceName**. – Kai Hartmann Mar 26 '18 at 13:54
3

The configuration for Windows services are stored in the Registy, under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services... You will probably want to change both the name of the key (the "folder", and the real name of the service here) and the value "Display Name".

It might be better to use a tool like SC.EXE to configure services, to avoid causing problems with bad Registry edits. Although SC can't rename a service in place, it does allow you to delete and create services (just be sure to get all the settings right!).

ewall
  • 27,179
  • 15
  • 70
  • 84
  • Sorry if my question was bit confusing... I wanted to change the name of the service in the solution itself. How can it be done? – Prady Oct 08 '10 at 03:23