C# 等待服务连接时达到超时(30000毫秒)
请任何人检查我在开始时所做的是否正确。我正在自动启动和停止错误服务。我想每10分钟运行一次服务。请帮帮我,我已经挣扎了4个小时了C# 等待服务连接时达到超时(30000毫秒),c#,windows,winforms,windows-services,C#,Windows,Winforms,Windows Services,请任何人检查我在开始时所做的是否正确。我正在自动启动和停止错误服务。我想每10分钟运行一次服务。请帮帮我,我已经挣扎了4个小时了 protected override void OnStart(string[] args) { try { _aTimer.Start(); _aTimer.Enabled = true; _aTimer
protected override void OnStart(string[] args)
{
try
{
_aTimer.Start();
_aTimer.Enabled = true;
_aTimer = new System.Timers.Timer(10 * 60 * 1000);//10 minutes
_aTimer.AutoReset = true;
_aTimer.Elapsed += new System.Timers.ElapsedEventHandler(_aTimer_Elapsed);
}
catch(Exception ex) {
RMLogger.RMException("ServiceManager", this.GetType().Name.ToString(), ex.ToString());
}
}
我看到的问题如下:
尝试先给它一个新实例和运行计时器所需的参数。然后启动计时器。我想你这里有点混乱。你说 我想每10分钟运行一次服务 但是,只有在服务持续运行时,您启动的计时器才会每10分钟运行一次 你的意思是你想每10分钟启动一次服务,在这种情况下,我会使用类似于每10分钟启动一次服务,让它完成它的处理,然后再次关闭
或者让服务持续运行,计时器事件将每10分钟触发一次。确保编译到安装windows服务的服务器上的.net framework版本相同
我也有同样的问题,我在4.5.2和服务器4.5中编译它。installutil欺骗我们允许安装它,但它不会启动。我不应该使用任务计划程序,这就是为什么我要将计时器设置为10分钟的原因,正因为如此,服务会在启动时启动和停止,我要将计时器间隔设置为10分钟。我是否可以指定计时器在启动后跳过initializecomponent()?看一下这篇文章我的服务应该创建一个excel文件,它正在运行创建的文件夹等,但无法创建excel文件我需要为该服务授予任何权限吗?我想这是一个单独的问题,您需要发布代码。作为第一步,加入一些异常处理并查看它的失败之处。这将为您提供一个很好的起点。我对调用timer_Appeased event感到困惑,我希望我的服务每10分钟运行一次。我不能使用windows任务计划程序。我可以在InitializeComponent()之后设置timer Appeased吗?您所说的是正确的,因为新的计时器实例是10分钟,windows服务启动的最长时间只有30秒,这导致了问题,我建议您这样做,因为如果(可能发生)计时器在initializecomponents之前经过,并且经过的事件正在调用组件,你肯定会得到一个关于仍然为空的组件的错误。我刚刚移动了我的代码_aTimer=new System.Timers.Timer(10*60*1000)//在initializingcomponent()下10分钟,并安装成功启动的服务。但需要检查它是否能按预期运行。谢谢你的朋友。很有帮助欢迎您,很高兴帮助!我希望你得到了理想的情况。祝你服务顺利。