title: Start Windows Service programmatically
body: <p>I am having an issue with an application that I am creating.  I am trying to start a windows service through my C# app.  When I click my start button, it looks like everything goes through but when I log into the server, the service still does not show that it is running.  However, the second time I run it, I get an exception that says the instance of the service is already running.  Again when I log into the server, the service appears to be stopped.  Has anyone ever seen this?</p>
  
  <p>Here is my code.</p>
  
  <pre><code>try
  {
      while (reader.Read())
      {
          int timeoutMilliseconds = 1000;
          string serviceName = reader["ServiceName"].ToString();
          string permission = reader["Permission"].ToString();
  
          if (permission == "E")
          {
              lblServStartSuccess.Visible = true;
  
              ServiceController service = new ServiceController(serviceName);
              TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
  
              service.Start();
              service.WaitForStatus(ServiceControllerStatus.Running, timeout);
          }
          else
          {
              lblServErrorStart.Visible = true;
          }
      }
  }
  catch (Exception ex)
  {
      Response.Write(ex.ToString());
  }
  </code></pre>
  
  <p><strong>EDIT:</strong> Here is the exception I received on one service:</p>
  
  <blockquote>
    <p>System.InvalidOperationException: Service Logical Disk Manager
    Administrative Service was not found on computer '.'. --->
    System.ComponentModel.Win32Exception: The specified service does not
    exist as an installed service --- End of inner exception stack trace</p>
  </blockquote>
  
  <p>I know the service exists. Do I need to add something in front of the service to tell it what server to look at?</p>