现在我有一个C#应用程序,它带有一个24/7的计时器,它经过了30秒并且做了任何事情。
我想将此应用程序设置为Windows服务,以便在后台运行。但服务立即崩溃..
我的代码:
public static System.Timers.Timer _timer = new System.Timers.Timer();
static void Main(string[] args)
{
_timer.Interval = 30000;
_timer.Elapsed += timerCallback;
_timer.AutoReset = true;
_timer.Start();
}
public static void timerCallback(Object sender, System.Timers.ElapsedEventArgs e)
{
// Do anything..
}
错误:
Windows无法在本地计算机上启动应用程序服务。
错误1053:服务未及时响应启动或控制请求
在Windows事件查看器中出现此消息:
等待应用程序服务连接时达到超时(30000毫秒)。
但错误出现的时间超过30秒?!
任何运行服务的解决方案? 感谢
迈克尔
答案 0 :(得分:3)
您可以使用Timer在Windows服务中定期执行逻辑,
protected override void OnStart(string[] args)
{
base.OnStart(args);
Timer timer = new Timer();
timer.Interval = 30*1000;
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
timer.Start();
}
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
//put logic here that needs to be executed for every 30sec
}