远程调试Windows服务VS2010

时间:2017-04-11 08:58:28

标签: c# windows visual-studio-2010

我在我的系统上开发了一个Windows服务,并在没有visual studio的目标机器上部署了该服务。因此,我需要从我的PC调试应用程序。我已经知道如何在本地计算机上调试Windows服务。

我的步骤:

  1. 将完整的bin文件夹(包含.exe和.pdb文件)复制到目标计算机。
  2. 使用InstallUtil.exe(即installUtil.exe "pathToMyServiceEXE/myService.Exe"
  3. 在目标计算机上安装服务
  4. 启动服务
  5. 已安装的Visual Studio远程调试应用程序(以“无身份验证模式”启动并选中“调试”选项)
  6. 附加到Visual Studio中的服务(在我的PC上运行)
  7. 问题:我能够成功附加到目标计算机的Windows服务。 但它无法找到符号。

    我已经检查过有关同一问题的其他SO问题但到目前为止找不到正确的解决方案。 我尝试了以下方法来解决问题:

    • 打开Tools->Options->Debugging->Symbols,然后将.pdb文件的路径放在我的本地PC上。 (没用)
    • 已打开Tools->Options->Debugging->General并取消选中“仅启用我的代码”。
    • 除了上述两项,我已经确定我在本地PC上运行x64版本的远程调试工具,调试/ x64版本的windows服务和debug / x64。

1 个答案:

答案 0 :(得分:0)

我能给你的最佳建议 - 现在不是最容易的,但从长远来看会得到回报 - 就是在目标机器上使用WinDBG调试器。这是目标机器上的零设置,但需要您学习WinDBG的基础知识。这不是微不足道的,但从长远来看会得到回报。

关于无法加载符号的原因:

  1. 也许PDB与二进制文件不匹配?
  2. 当前登录用户可能无法访问路径? (例如映射驱动器等)
  3. 也许是权限问题?
  4. 除此之外,我认为它应该有用