服务无法启动

时间:2009-12-03 09:53:05

标签: c# windows-services

根据本文,我在C#中开发了一个简单的Windows服务。

http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

我第一次成功启动了服务并停止了它。在以下尝试期间,我无法启动该服务。我收到了以下信息。

  

本地的MyNewService服务   电脑启动然后停止。   如果有些服务会自动停止   他们没有工作要做,例如,   性能日志和警报   服务。

请帮忙。

5 个答案:

答案 0 :(得分:1)

基本上这意味着您的服务的主线程由于某种原因而崩溃了。我见过的最常见的是文件系统访问它自己的日志文件。

有时您可以在事件查看器中找到原因,但不幸的是,很多时候您运行该服务的用户实际上无法访问记录它的错误。如果你在开发环境中,一件简单的事情就是暂时给服务一个管理员帐户,首先让它告诉你崩溃是否是由于缺乏访问权限(导致它工作),其次是如果它不是它将允许它写入事件查看器。确保在修复后获取f的管理员权限,导致长期非常危险。

答案 1 :(得分:1)

我概述了here我们用来调试Windows服务的方法。也许这可以帮助您追踪错误。基本上这听起来像是在尝试执行OnStart方法时发生了一些错误。

答案 2 :(得分:0)

你看过事件日志了吗?您通常可以获得有关服务错误的更详细的错误信息。另外,您是否正在使用您的服务写入日志?这是另一种你可以弄清楚出了什么问题的方法。

您可以通过右键单击计算机并选择“管理”来访问事件日志。在“系统工具”下,查看“事件查看器” - >“应用程序”。这是在Windows XP上,但其他Windows操作系统应该是类似的。

答案 3 :(得分:0)

如果服务在您的开发计算机上,您应该可以让Visual Studio的调试器在启动时附加到它,以便您可以识别是否有任何因素导致其崩溃。它涉及一些注册表编辑,如下所述:http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx

答案 4 :(得分:0)

听起来你的主要线程因某种原因而死亡。在服务的启动代码中调用System.Diagnostics.Debugger.Break(),例如,主入口点,服务构造函数或OnStart()方法。从服务MMC启动服务时,系统将提示您输入调试会话。进入Visual Studio后,打开“例外”对话框(从“调试”菜单中)并选中“投出”列中的框。然后从那里调试以找到问题。