我正在创建一个windows服务,它必须在特定的日期和时间运行。我使用XML文档传递这些变量。这里是我的代码在Service1.cs将参数传递给c中的windows服务#
protected override void OnStart(string[] args)
{
timer1.Enable = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
foreach (string DayToRun in daysToExecute)
{
if (DateTime.Now.DayOfWeek.ToString().ToUpper().Equals(DayToRun.ToUpper()) && DateTime.Now.ToShortTimeString().Equals(timeToExecute))
{
Process.Start("Path to executable");
}
}
}
传递值
static void Main()
{
ServiceBase[] ServicesToRun;
Service1= new Service1();
//Load setting from xml and assign to variables "daysToExec" and "timeToExec"
LoadSettings();
Service1.daysToExecute = daysToExec;
Service1.timeToExecute = timeToExec;
ServicesToRun = new ServiceBase[] { Service1 };
ServiceBase.Run(ServicesToRun);
}
的的OnStart代码(),但这没有启动可执行文件。这段代码有什么问题吗?
谢谢。
只要问这里显而易见的问题...在daysToExecute中有没有字符串,当它打到Timer1_Tick调用? 此外,你确定timeToExec是匹配你的格式? – taylonr 2010-08-12 17:27:13
是的。 daysToExec是字符串列表。我不知道它是否有任何价值。如果你能告诉我怎么看这个,那将会很有帮助。 感谢您的回复。 – shanthiram 2010-08-12 17:35:16
你应该至少用一些日志功能来写出一个文本文件。然后,您可以写出有关您的参数的信息。 (有些方法可以调试服务,但写入文本文件对于这种情况可能最简单) – 2010-08-12 18:24:20