1
Answer

I m getting an error that cannot start service from command

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)