visual-studio - 使用 VS2012 远程调试 Windows 服务

标签 visual-studio windows-services remote-debugging

在发布这个问题之前,我试图找到这个问题的答案。我在另一台机器上运行了一个 Windows 服务。我用 C# 编写了服务,服务可执行文件运行的目录包含可执行文件和调试文件 (.pdb)。我第一次尝试使用 VS 2012 远程调试远程调试服务。我能够成功附加到服务流程。但是,由于这是我的第一次,我不确定下一步该怎么做。我单击了暂停按钮并暂停了 ServiceBase.Run(ServicesToRun) 行上的服务,这对我来说用处不大。该服务有一个计时器,每 30 秒启动一次,并将在计时器事件中运行代码。

我的问题是……在这种情况下,是否有一种方法可以使用调试器单步执行代码。 我的代码库中是否需要一些特定于调试的代码,以便在附加调试器时将我带到代码中可以单步执行代码的位置?

谢谢, 安德鲁。

最佳答案

有多种方法可以调试您开发的远程应用程序或 Windows 服务。如果你在你的机器(本地)中,那将很容易调试。

System.Diagnostics.Debugger.Launch();

但是由于您在不同的机器上,这取决于您两台机器的连接方式。这意味着您在调试远程应用程序/服务时有一些限制。

快速搜索给了我以下结果,这对我来说似乎对你有帮助,

您可以使用 visual studio 用于连接到远程设备和调试的远程调试监视器。您可以在 How to: Run the Remote Debugging Monitor 上获得明确的说明。 .

还有另一种工具可以让您在正确设置后调试远程应用程序。但它有一些您必须遵守的限制或条件。

这里是名为Remote Tool 的工具,您可以在How to: Set Up Remote Debugging 上从MSDN 中找到详细的设置过程。 .

关于使用此工具的先决条件 已被清楚地引用。但我仍然为快速审阅者再次改写这些内容。

使用 Remote Tool for Visual Studio 的先决条件

    在远程设备上调试:

  • 远程设备和 Visual Studio 计算机必须通过网络连接或通过以太网电缆直接连接。 不支持通过互联网进行调试

  • 远程设备必须运行 Visual Studio 2012 远程工具。

  • 您必须是管理员才能在远程设备上安装远程工具。要与远程工具通信,您必须拥有远程设备的用户访问权限。

如果您找到更好的有效解决方案,请随时分享。

关于visual-studio - 使用 VS2012 远程调试 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26884659/

相关文章:

德尔福2009 : How to communicate between Windows service & desktop application under Vista?

eclipse - Tomcat : Unable to connect for remote debugging

visual-studio - Visual Studio 2010 基础服务器 - 我需要域 Controller 吗

c# .cs 文件,在 Visual Studio 的评论中带有 http 相对链接

c# - 对不同的计划任务使用单个 exe

windows-services - 运行 Installutil 以在共享文件夹上安装 Windows 服务

visual-studio-2010 - 如何远程调试 vsto Outlook 插件?

python - 使用rpdb远程调试Python服务器

c# - 使用 monodevelop 打开 .csproj

visual-studio - Visual Studio F# 交互窗口由哪个进程托管?