【发布时间】:2011-11-28 09:05:38
【问题描述】:
在 services.msc 中,当我右键单击我的服务并选择“启动”时,出现以下错误:
这是我在 VS2008 中创建的服务(使用 c#)。
这是代码中的错误吗?安装本身有问题吗?
【问题讨论】:
-
查看 Windows 事件查看器以获取更多信息。然后发布错误。否则你的问题没有任何信息可以帮助你。
标签: windows service windows-services
在 services.msc 中,当我右键单击我的服务并选择“启动”时,出现以下错误:
这是我在 VS2008 中创建的服务(使用 c#)。
这是代码中的错误吗?安装本身有问题吗?
【问题讨论】:
标签: windows service windows-services
我同意 Richard...诊断是收集信息的最佳方式。
话虽如此,我通常会在 OnStart 事件中放置一行代码来强制中断。这样,您可以在调试器中单步执行它并查看 OnStart 中是否存在问题,或者它是否成功完成但没有其他工作要做。这不是最优雅的方式,但它确实有效。
在 OnStart 中,添加以下内容:
System.Diagnostics.Debugger.Launch();
请参阅此博客文章了解演练:
http://blogs.msdn.com/b/field_notes/archive/2008/07/21/how-to-debug-windows-service-onstart.aspx
显然,您希望将其删除以用于生产代码。
【讨论】:
您必须调试服务。
消息框告诉您进程正常退出,这不是一个未经处理的异常。事件日志中可能有更多详细信息,但如果您的服务未提供任何诊断1,那么 Windows 将无法告诉您任何信息。
1 假设这发生在您无权访问的机器上,您将如何弄清楚发生了什么?服务需要诊断,以及理想的可配置诊断,以便后续跟踪发生的事情。
【讨论】: