My service does not loop
<p>It is my first program for service.
If i run this code as Console, LOOP works, but if I convert it to service, it does the operation initially, but does not LOOP.
Could you help me correct it?
tnx</p>

<pre><code>using System;
using System.Net;
using KICBservice;
using System.Data;
using ConsoleApplication1.Classes;
using System.IO;
using System.ServiceProcess;
using System.Configuration.Install;
using System.ComponentModel;

namespace KICBService
{
    [RunInstaller(true)]
    public class MyWindowsServiceInstaller : Installer
    {
        public MyWindowsServiceInstaller()
        {
            var processInstaller = new ServiceProcessInstaller();
            var serviceInstaller = new ServiceInstaller();

            //set the privileges
            processInstaller.Account = ServiceAccount.LocalSystem;

            serviceInstaller.DisplayName = "KICB_Payment";
            serviceInstaller.StartType = ServiceStartMode.Manual;

            //must be the same as what was set in Program's constructor
            serviceInstaller.ServiceName = "KICB_Payment";

            this.Installers.Add(processInstaller);
            this.Installers.Add(serviceInstaller);
        }
    }

    class Program : ServiceBase
    {
        static void Main(string[] args)
        {
            ServiceBase.Run(new Program());

            KICBservice.Service1SoapClient kicb = new KICBservice.Service1SoapClient();

            kicb.ClientCredentials.Windows.ClientCredential = new NetworkCredential("register", "KICBregistr1");
            kicb.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

            while (true)
            {
                try
                {
                    kicb.Open();
                    StreamWriter tw = File.AppendText("c:\\KICB.log");

                    NewPayment np = new NewPayment();

                    np = kicb.GetPayment("register", "KICBregistr1");

                    // Operation with Database

                    tw.WriteLine("----------------");
                    tw.WriteLine(DateTime.Now);
                    tw.Close();

                    kicb.Close();
                    System.Threading.Thread.Sleep(60000);
                }
                catch (Exception ex)
                {
                    kicb.Abort();
                }
            }

        }

        public Program()
        {
            this.ServiceName = "KICB_Payment";
        }

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

            //TODO: place your start code here
        }

        protected override void OnStop()
        {
            base.OnStop();

            //TODO: clean up any variables and stop any threads
        }
    }
}
</code></pre>

<p>I am pasting full code of my program.</p>
