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);
}