是否有更简单的方法来单步执行代码,而不是通过Windows服务控制管理器启动服务,然后将调试器附加到线程?这有点麻烦,我想知道是否有一个更简单的方法.
我阅读了有关该主题的MSDN文章.报价:
由于服务必须在服务控制管理器的上下文中而不是在Visual Studio中运行,因此调试服务并不像调试其他Visual Studio应用程序类型那样简单.要调试服务,必须启动该服务,然后将调试器附加到运行它的进程.然后,您可以使用Visual Studio的所有标准调试功能来调试应用程序.
现在我的问题是我的服务首先无法启动.首先它崩溃,并说:
MyServiceName.exe [3596]中发生未处理的异常(System.Runtime.InteropServices.COMException)
并建议我调试它(当我选择一个时,调试器实例会立即崩溃).然后它说
无法在本地计算机上启动MyServiceName服务.错误1053:服务未及时响应启动或控制请求
那么,我如何调查/调试我的服务无法启动的原因?问题是我创建了一个控制台应用程序,它完全可以完成服务的工作,并且工作正常.(我的意思是我只是将OnStart()方法和主循环的内容复制到main中.
任何帮助,将不胜感激.
该服务是用C#编写的,大量使用互操作.我正在使用VS2008