title: windows service start failure
body: <p>when i debug my code it pops up a dialogue box that windows service start failure - cannot start service from command line and debugger. a windows service must first be installed (using installutil.exe) and then started with server explorer, windows service administrative tool or net start command.</p>
  
  <p>But I have installed my service. below is the script from <strong>cmd with admin rights.</strong></p>
  
  <pre><code>C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsSe
  rvice1\bin\Debug&gt;installutil  WindowsService1.exe
  Microsoft (R) .NET Framework Installation utility Version 4.0.30319.33440
  Copyright (C) Microsoft Corporation.  All rights reserved.
  
  
  Running a transacted installation.
  
  Beginning the Install phase of the installation.
  See the contents of the log file for the C:\Users\Sapuser\Documents\Visual Studi
  o 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe as
  sembly's progress.
  The file is located at C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Wi
  ndowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog.
  Installing assembly 'C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Wind
  owsService1\WindowsService1\bin\Debug\WindowsService1.exe'.
  Affected parameters are:
     logtoconsole =
     logfile = C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\WindowsServi
  ce1\WindowsService1\bin\Debug\WindowsService1.InstallLog
     assemblypath = C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Windows
  Service1\WindowsService1\bin\Debug\WindowsService1.exe
  Installing service MyTestWinService...
  Service MyTestWinService has been successfully installed.
  Creating EventLog source MyTestWinService in log Application...
  
  The Install phase completed successfully, and the Commit phase is beginning.
  See the contents of the log file for the C:\Users\Sapuser\Documents\Visual Studi
  o 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe as
  sembly's progress.
  The file is located at C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Wi
  ndowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog.
  Committing assembly 'C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Wind
  owsService1\WindowsService1\bin\Debug\WindowsService1.exe'.
  Affected parameters are:
     logtoconsole =
     logfile = C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\WindowsServi
  ce1\WindowsService1\bin\Debug\WindowsService1.InstallLog
     assemblypath = C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\Windows
  Service1\WindowsService1\bin\Debug\WindowsService1.exe
  
  The Commit phase completed successfully.
  
  The transacted install has completed.
  
  C:\Users\Sapuser\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsSe
  rvice1\bin\Debug&gt;net start MyTestWinService
  The MyTestWinService service is starting.
  The MyTestWinService service was started successfully.
  </code></pre>
  
  <p><strong>I m attaching my code for ref:</strong></p>
  
  <pre><code>public partial class Service1 : ServiceBase
      {
          private Timer timer1 = null;
  
          public Service1()
          {
              InitializeComponent();
          }
  
          protected override void OnStart(string[] args)
          {
              timer1 = new Timer();
              this.timer1.Interval = 60000; //60 sec
              this.timer1.Elapsed +=new System.Timers.ElapsedEventHandler(this.timer1_Tick);
              timer1.Enabled=true;
              Library.WriteErrorLog("test windows service started");
  
          }
  
          protected override void OnStop()
          {
              timer1.Enabled = false;
              Library.WriteErrorLog("Test Service ended");
          }
  
          public void timer1_Tick(object sender, ElapsedEventArgs e)
          {
              //job
              var result = RunProcess(@"c:\", "webupknvp.Bat", "", false);
              if (result == 0)
              {
                  // success
                  Console.WriteLine("Sucess");
              }
              else
              {
                  // failed ErrorLevel / app ExitCode
                  Console.WriteLine("failed try again");
  
              }
  
  
          }
  
          public int RunProcess(string workDir, string appName, string args, bool hide = false)
              {
  
                      Process proc = null;
                      proc = new Process();          
                      string batrun = string.Format("cmd.exe", "/c" + @"C:\Abhay\batfile"); // or @"C:\Abhay\batfile" in the end ("cmd.exe", "/c" + @"C:\Abhay\batfile")
                      proc.StartInfo.UseShellExecute = false;   //addition    
                      proc.StartInfo.WorkingDirectory = workDir;//batrun
                      proc.StartInfo.FileName = appName;
                      proc.StartInfo.Arguments = args;
                      proc.StartInfo.CreateNoWindow = hide;
  
                      proc.Start();
                      proc.WaitForExit();
  
                      return proc.ExitCode;
                 }
      }
  }
  </code></pre>
  
  <p><strong>the library class</strong> </p>
  
  <pre><code>public static void WriteErrorLog(Exception ex)
          {
              StreamWriter sw = null;
              try
              {
                  sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\ Logfile.txt", true);
                  sw.WriteLine(DateTime.Now.ToString() + ":" + ex.Source.ToString().Trim() + ";" + ex.Message.ToString().Trim());
                  sw.Flush();
                  sw.Close();
  
              }
              catch
              {
  
              }
          }
  
          public static void WriteErrorLog(string Message)
          {
              StreamWriter sw = null;
              try
              { 
  
                  sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\ Logfile.txt", true);
                  sw.WriteLine(DateTime.Now.ToString() + ":" + Message);
                  sw.Flush();
                  sw.Close();
              }
              catch
              {
  
              }
          }
      }
  }
  </code></pre>
  
  <p><strong>Program.cs</strong> </p>
  
  <pre><code>static void Main()
          {
              ServiceBase[] ServicesToRun;
              ServicesToRun = new ServiceBase[] 
              { 
                  new Service1() 
              };
              ServiceBase.Run(ServicesToRun);
  
          }
  </code></pre>
  
  <p>what should i change? </p>