Windows服务无法启动

我按照本教程使用Microsoft Visual Studio 2010创build和安装Windows服务: http : //msdn.microsoft.com/en-us/library/zt39148a%28v=vs.100%29.aspx

我正在使用3.5 .NET Framework。 经过几次尝试,我只是从头开始创build一个新的服务,但是这次没有提供OnStart()方法的方法体。 该服务安装成功,但是当我尝试使用服务pipe理器运行它时,它不会执行任何操作,一段时间后Windows会告诉我该服务无法运行。

任何forms的帮助将不胜感激。

OnStart()方法在服务启动时被系统调用。 该方法应尽快返回,因为系统将等待成功返回以指示服务正在运行。 在这个方法里面,你通常会启动执行服务任务的代码。 这可能包括启动线程,启动计时器,打开WCF服务主机,执行异步套接字命令等。

下面是一个简单的例子,它启动一个简单的执行一个等待服务停止的循环的线程。

 private ManualResetEvent _shutdownEvent; private Thread _thread; protected override void OnStart(string[] args) { // Uncomment this line to debug the service. //System.Diagnostics.Debugger.Launch(); // Create the event used to end the thread loop. _shutdownEvent = new ManualResetEvent(false); // Create and start the thread. _thread = new Thread(ThreadFunc); _thread.Start(); } protected override void OnStop() { // Signal the thread to stop. _shutdownEvent.Set(); // Wait for the thread to end. _thread.Join(); } private void ThreadFunc() { // Loop until the service is stopped. while (!_shutdownEvent.WaitOne(0)) { // Put your service's execution logic here. For now, // sleep for one second. Thread.Sleep(1000); } } 

如果你已经到了安装服务的地步,那听起来就像你在路上一样。 对于什么是值得的,我已经有从头开始创建一个服务的分步说明,以及后续的说明,让服务从命令行安装/卸载,而不依赖于InstallUtil.exe

我终于设法解决了这个问题。 显然问题在于Visual Studio安装程序,因为我设法编译项目,然后在管理模式下使用installutil安装服务。