2011-03-28 80 views
0

我有一个很好的httpListener exe文件。我现在需要做的是使它成为一种服务(我认为),以便服务器重新启动时,该程序将自动启动。我发现了一些用于制作服务的教程,我安装了一个,但是当我开始使用时,它说需要很长时间才能做出响应。我在想这可能是因为我有一段时间在onStart方法中的真循环。httpListener作为Windows服务

任何人有任何想法?

回答

1

如果服务onStart事件只是潜入业务逻辑,则事件永不结束,所以服务不会完成启动。我没有VB.NET示例,但我的方法是在IniializeComponent事件中创建一个计时器,并以小的时间间隔完成并连接一个timer.elapsed事件。

OnStart事件然后在其中有一行代码来启动计时器。服务启动完成后,该服务在Timer.Elapsed事件触发时开始工作。

+0

我无法在一段时间内完成它,因为http post请求可能随时进入。在想了一整晚之后,我需要的是一个exe文件,当windows启动并运行在后台并最小化到任务栏时,就像一个反病毒程序一样。我想我会考虑这条路线。 – spuppett 2011-03-29 13:26:42

+0

这也不完全是。我只是将程序添加到服务器上的启动文件夹中,然后重新启动并尝试在另一台计算机上发送请求,但没有启动它。然后,我远程登录到服务器,我看到程序启动,然后发送请求,并抓住它。然后我注销,程序停止。我需要永远在线,无论是否有人登录,如IIS或SQL Server,但我不认为它可以在计时器上。 – spuppett 2011-03-29 13:53:56

+0

我终于搞定了。将exe添加为在启动时启动的计划作业。 – spuppett 2011-03-30 12:42:55

0

如果没有更多信息(例如,你在做什么),直接回答这个问题是不可能的。但是,这应该不是必需的,因为您应该能够通过将调试器附加到正在运行的服务来进行调试,如here所述。