【发布时间】:2017-04-11 08:58:28
【问题描述】:
我在我的系统上开发了一个 Windows 服务,并将该服务部署在没有 Visual Studio 的目标机器上。因此,我需要从我的 PC 调试应用程序。我已经知道如何在本地机器上调试 Windows 服务。
我的步骤:
- 将完整的 bin 文件夹(包含 .exe 和 .pdb 文件)复制到目标计算机。
- 使用
InstallUtil.exe(即installUtil.exe "pathToMyServiceEXE/myService.Exe")在目标机器上安装了服务 - 启动服务
- 已安装 Visual Studio 远程调试应用程序(以“无身份验证模式”启动并选中调试选项)
- 附加到 Visual Studio 中的服务(在我的 PC 上运行)
问题:我能够成功连接到目标机器的 windows 服务。 但它找不到符号。
我已经检查了有关同一问题的其他 SO 问题,但到目前为止找不到正确的解决方案。 我尝试了以下方法来解决问题:
- 打开
Tools->Options->Debugging->Symbols然后将.pdb 文件的路径放在我的本地PC 上。 (没用) - 打开
Tools->Options->Debugging->General并取消选中“仅启用我的代码”。 - 除了以上两个,我已经确定我在本地PC上运行的是x64版本的远程调试工具、Debug/x64版本的windows服务和debug/x64。
【问题讨论】:
-
也许在VS中从你的窗口服务源调试+部署
appconfig -
让调试器告诉你。调试 > Windows > 模块,在显示的列表中找到要调试的模块。右键单击并选择符号加载信息。告诉您它在哪里查找 PDB 文件。
-
@HansPassant:我已经这样做了,但它说 .pdb 文件无效。我认为这个问题是因为我的应用程序在托管代码中,并且我只启动了本地远程调试。我应该在“Windows 身份验证模式”下启动远程调试工具,我这样做了,但后来我无法登录。
-
好吧,这当然行不通。很难猜出你为什么会考虑尝试这样做,并认为没有必要在问题中不提及它。完全没有意义。
-
@HansPassant:我是第一次尝试进行远程调试,并不完全熟悉该工具。当我发布问题时,我不知道这两种模式适用于不同类型的代码(我认为这只是出于安全目的)。现在我被困在登录到 Windows 身份验证模式的问题上。
标签: c# windows visual-studio-2010