How to debug a Windows Service written in C# flawlessly

Hi guys,

I know its been frustrating to install and uninstall and stop and start ,each and every time you have modified your windows service.



If you tried to directly Run or Press F5 ,then this will be the result from Visual Studio.

How to debug a C# written windows service

  • After creating a C# -> Windows Service project.
  • Double click "Program.cs" from the 'Solution explorer' from in VS.
  • Now change the code in function main() to the code mentioned below.
static void Main()
{
 #if(!DEBUG)

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] new Service1() //Replace this with your service class name ServiceBase.Run(ServicesToRun);

#else

Service1 myServ = new Service1(); //Replace this with your service class name
myServ.main();//This will invoke the function which contains the code you should put in OnStart when the real service runs.Just define a function called main and copy the code that you had put in OnStart. 

 #endif
}

Explanation of the above code

If the Runtime configuration is set to "Debug" then the service will run as an ordinary Console application.You may set break points and debug.


If the Runtime configuration is set to anything else ,other than "Debug" then it will run as a normal service which responds to installutil and net start or stop commands.


Hope this helped you a lot in your programming career.Any comments, feel free to use the comment box below
Share on Google Plus

About ShihabSoft

I am Shihab, people used to call me a Security researcher or sometimes a Reverse engineer or sometimes a creepy hacker ;). Got a brain full of knowledge in different programming languages, and not more nor less I am a blogger too :).
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment

Don't be shy. Just leave your comments, am so happy to assist you. And, don't forgot that I am such a nice person who you are dealing with :)

Don't be shy. Just, leave your comments. Iam so happy to assist you. And, don't forgot that, I am such a nice person who you are dealing with :)