2010-07-20 148 views
0

我们编写了一个需要一段时间启动的自定义Windows服务(VB.NET,.NET Framework 2.0),因为它会上传销售。Windows服务启动导致Windows错误

Protected Overrides Sub OnStart(ByVal args() As String) 
    -- upload sales here 
End Sub 

这一事实,它需要很长的时间来启动是好的,但在Windows生成超时错误,并启动其他程序不会被添加到系统托盘。

我们可以延迟销售上传,但宁愿让Windows忽略这一事实,即该服务需要很长时间才能启动并且不会产生错误。有任何想法吗?

回答

5

开始在另一个线程上传销售代码,这会在后台运行上传代码,让服务响应,它的开始,你不会得到超时消息

Protected Overrides Sub OnStart(ByVal args() As String) 

    Dim start as new ThreadStart(UploadSalesMethod) 
    Dim t as new Thread(start) 
    t.Start() 

End Sub 
4

OnStart方法中的代码不能运行太久。所以如果你有一个很长的运行代码,那么在另一个线程下运行,所以OnStart事件将返回更早。

1

要直接解决您的问题,“宁愿让Windows忽略此服务需要很长时间才能启动并且不会产生错误”的事实,您可以通过调用ServiceBase上的RequestAdditionalTime来简单地增加启动超时值。