Abhay Singhania

Abhay Singhania

  • NA
  • 32
  • 14.6k

I m getting an error that cannot start service from command

Mar 18 2017 3:37 AM
windows service should be first install and then started with server explorer,
administrative tools or the net start command

this is the error i m facing. I have tried starting the service from computer
management - service and application, running cmd through admin rights.

below i m attaching my code.

this the code

Service1.cs

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:\Abhay\batfile", "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");
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;
}
}
}


Library.cs

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
{

}
}
     }
}

Program.cs

static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()

};
ServiceBase.Run(ServicesToRun);


}


Answers (1)