1

嗨,关于这个话题(调试 Windows 服务)之前也有很多讨论https://stackoverflow.com/search?q=debug+windows+service

但是我在实施同样的问题时遇到了一些问题。

  • 我尝试从 VS 2008 添加附加过程,但特定的 .Exe 已禁用,因此无法附加
  • 还使用调试器尝试了以下代码

    #if DEBUG
    Debugger.Launch();
    #endif
    

调用调试器时出现错误"UnHandled Exception Occured--JIT compiler was launched without any security permissions.To debug run as administrator"

我拥有这台 PC 的管理员权限并且正在使用Windows 7我该如何调试它?

PS:我可以调试使其成为控制台应用程序。但是想知道为什么上述方法会失败..有没有办法可以作为服务进行调试?

4

2 回答 2

0

当您附加该进程时,该进程应该正在运行。这是我用来调试服务的两种方式

1)在你的windows服务的开头添加一个睡眠定时器,运行服务,然后在vs-Debug->attach to a process

2) 创建和读取 DUMP 文件(google DebugDiag [v1.2 是最新的?])它可以让您查找线程中的崩溃、内存泄漏、cpu 使用变化。使用 WinDbg 读取转储文件。

于 2012-07-26T14:02:34.207 回答
0

可能 - 以适当的权限启动 JIT。即以管理员身份启动服务。您可以设置服务启动时使用的用户名和密码。

于 2012-07-26T11:55:23.227 回答