Hi all. I made a Windows service that posts performance data to a mySQL database using a json string. However, this service is required to post data every minute. I have added a timer but, it doesn't seem to send the data to the database every minute.

I have 2 classes in my project. The program class initiates the service and runs the performance code.

Code:
public static string ServiceName = "performanceService";

    static void Main(string[] args)
    {
        if (!Environment.UserInteractive)
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
            new ServiceControl()
            };
            ServiceBase.Run(ServicesToRun);


        }
        else
        {
            PerformanceCounter ramCount = new PerformanceCounter("Memory", "Available MBytes");
            PerformanceCounter cpuCount = new PerformanceCounter("Processor", "% Processor Time", "_Total");
Console.WriteLine("Press any key to view other information...\n");
                Console.WriteLine("CPU and RAM information");
                while (!Console.KeyAvailable)
                {
                    double perf = cpuCount.NextValue();
                    Console.WriteLine("CPU Performance: " + perf + " %");
                    ServerStats.cpuLoad = perf;


                    double ram = ramCount.NextValue();
                    Console.WriteLine("RAM available: " + ram + " MB");
                    ServerStats.memoryLoad = ram;

                    Thread.Sleep(1000);
Remaining code contains more code that executes performance.

Then I have a ServiceControl class, which in fact is a Windows Service. And in this class I have setup my timer.

Code:
System.Timers.Timer timer = new System.Timers.Timer();

    public ServiceControl()
    {
        ServiceName = Program.ServiceName;
        InitializeComponent();

    }

    public void timerElapsed(object sender, EventArgs e)
    {
        Console.WriteLine("Time Elapsed");
    }
    protected override void OnStart(string[] args)
    {
        base.OnStart(args);
        timer.Elapsed += new ElapsedEventHandler(timerElapsed);
        timer.Interval = 60000;
        timer.Enabled = true;
        timer.Start();

    }
    protected override void OnStop()
    {
        base.OnStop();
        timer.Enabled = false;
        timer.Stop();
    }
private void InitializeComponent()
    {
        // 
        // ServiceControl
        // 
        this.ServiceName = "performanceService";

    }
If there is any additional code that you would like to see, please let me know. It only posts it when the application is run, rather when the service is running. I do not get any errors. I would like the service to post info every minute, without running the application. Am I missing code in the Main() or in the timerElapsed()?
Is there anything wrong within my code that doesn't allow the service to post the data at the specified interval?
Thank you.