我有一个使用VB.NET构建的WindowsService,仅在某些服务器上获得30000毫秒的TimeOut。 当它发生时,我在事件管理器上找到的关于它的唯一条目是异常,说它启动时间超过30000毫秒而且失败了。
我的OnStart尝试快速,并且从中我只启动一个计时器,它将记录它开始的时间并处理所有必须执行的任务。贝娄是代码:
Protected Overrides Sub OnStart(ByVal args() As String)
'-- request additional time to see if we get rid of timeout on service
Me.RequestAdditionalTime(120000)
'-- we created a timer to be triggered on OnStart so the Service will start quickly and then run the rest
' of the starting code in order not to time out in some servers that take longer to start SQL Server
OnStartTimer.Interval = 10000
OnStartTimer.Enabled = True
End Sub
正如我们所看到的,我甚至试图使用RequestAdditionalTime增加所需的时间,但它似乎没有帮助。 OnStart只会启用一个Timer并退出。这让我想知道这个过程在30秒内是否完全进入OnStart。
我有许多通过.Designer.vb实例化的定时器(16),它们每个都将处理不同的任务,它们都是用Enable = False创建的,所以我只会在OnStart之外启动它们而不做任何其他事情,这就是它的全部。
我还有什么其他想法可以尝试至少找出是什么让服务花了这么长时间才开始?