.net - VS2008 on Win7 64-Bit : Debugging a Windows Service

标签 .net visual-studio windows-7 windows-services 64-bit

我正在尝试在 Win7 64 位上使用 VS2008 调试 Windows 服务。我遇到的问题是,无论我选择哪种构建配置:x86、x64 或 AnyCPU,我的断点都没有被命中。

在服务启动后使用“附加到进程”,没有一个断点被命中 - 但是 IDE 没有通知我它们不会被命中(例如,通过制作实心红色圆圈和轮廓) - 它只是似乎断点甚至不存在。

谁能在这里指出我正确的方向?

谢谢

/理查德。

最佳答案

首先明确的问题...

  • 你是在 Debug模式还是 Release模式下编译?
  • .pdb 文件是否位于安装服务的位置?
  • 您确定设置断点的代码实际上正在执行吗?

  • 如果这些都不是问题,请尝试在您的服务的构造函数中插入以下行。
    System.Diagnostics.Debugger.Break();
    

    当服务启动时,系统会提示您选择调试器。当调试器打开时,它将在程序断点处暂停,您可以从那里继续。我不使用 Windows 7,但我预计 Visual Studio 2008 的这方面与 Windows XP 相比没有太大变化。我一直使用这种编程方法来为我的 Windows 服务输入调试 session 。

    关于.net - VS2008 on Win7 64-Bit : Debugging a Windows Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398826/

    相关文章:

    c# - 返回多个 selectlist 和一个 actionresult

    c++ - 如何隐藏 C++ dll 中的类?

    Python如何在不删除已有内容的情况下继续写入文件

    windows - 如何为我的文件类型使用现有的 Png-Shell-Thumbnail?

    windows-7 - 为什么快捷方式调用的命令在Windows 7下的MFC中永远不会崩溃

    c# - 多线程,访问UI控制

    c# - 使用 C# 将 FTP 文件从内存上传到远程站点

    c# - 如何从数据库加载 ComboBox 的列表?

    visual-studio - Visual Studio 错误 : Collection was modified; enumeration operation may not execute

    c# - 当我的类库函数被调用时,有什么方法可以自动进入调试器吗?