使用 console.readline()
Use of console.readline()
现在我有一个 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 could not start the Application service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion
在 windows 事件查看器中出现此消息:
A timeout was reached (30000 milliseconds) while waiting for the Application service to connect.
但错误出现的速度超过 30 秒?!
运行 服务有什么解决方案吗??
谢谢
迈克尔
您可以使用 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
}
现在我有一个 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 could not start the Application service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion
在 windows 事件查看器中出现此消息:
A timeout was reached (30000 milliseconds) while waiting for the Application service to connect.
但错误出现的速度超过 30 秒?!
运行 服务有什么解决方案吗?? 谢谢
迈克尔
您可以使用 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
}