Wednesday, 17 May 2017

C# Windows Service Debug

Hi all, here an easy example to make a debug on C# Windows Service ,
Implementation of Code founded on:

https://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

With this useful example you create a Single *.exe file , but if you start the debugger
you can't debug the code with Visual Studio, Here is how to do:

First, make all step writed on CodeProject(in future reference I call this project "CodeProjectWS"), after you need to do this:

Right Clik on Current Solution -> Add -> New Project
On Project Type select Windows Consolle Application
select a name for new project, I choose :"LwebCodeWinDbg" -> Ok
Now in New Project "LwebCodeWinDbg" right-click the project name and go to:
[Add]->[Class]. Name the class "LwebCodeWindowsService.cs" and then hit OK.
Open class "LwebCodeWindowsService" and put this code:


namespace LwebCodeWinDbg
{
    public class LwebCodeWindowsService
    {
        public static void WindowsServiceStart()
        {
            System.IO.File.WriteAllText("c:\\LwebCodeTetsService.txt", DateTime.Now.ToString());
        }
    }
}

   
Now in New Project "LwebCodeWinDbg" open Program.cs and paste this code over Main Function:

namespace LwebCodeWinDbg
{
    class Program
    {
        static void Main(string[] args)
        {
            //put debug breakpoint on this istruction:
            LwebCodeWindowsService.WindowsServiceStart();
        }
    }
}


Now Open "CodeProjectWS" , right Clik on "Reference"-> Add Reference
in left pane select: "Solution"    -> Browse... and browse to "LwebCodeWinDbg" Project and then hit OK.
Open WindowsService.cs
and paste this code on OnStart Event:


protected override void OnStart(string[] args)
        {
            base.OnStart(args);
            LwebCodeWinDbg.LwebCodeWindowsService.WindowsServiceStart();

        }

with this istruction you can call the same function from Windows Service and Windows Consolle Application.
To debug the Windows service right click on "LwebCodeWinDbg" -> Set as Startup Project
F5 to start debug.

Hope it helps