目前我的代码中有以下语句允许我调试Windows服务:
#If DEBUG Then
System.Diagnostics.Debugger.Launch()
#End If
我把它放在OnStart方法中,当我启动服务时,我可以附加到我的Visual Studio实例。目前我有一个失败的实例。我在虚拟机上安装了服务,我遇到了以下错误:
发生了未处理的异常('启动用户') MyService.exe [376]。及时调试这个 异常失败,出现以下错误:调试器无法执行 因为没有用户登录而启动。
我在本地计算机上调试这样的服务时从未遇到过问题,所以我不确定发生了什么。如果重要,用户将设置为LocalSystem
。我通过管理员登录到虚拟机。
答案 0 :(得分:0)
我最终在 OnStart 方法中添加了以下语句:
#If DEBUG Then
While True
End While
#End If
这允许我手动附加到visual studio中的进程并在while循环中设置断点。一旦我点击断点,我就手动走出while循环,继续进行应用程序的其余部分。