如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它

Posted

技术标签:

【中文标题】如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它【英文标题】:Can't debug Windows Service if it's installed by Visual Studio Installer 【发布时间】:2020-04-27 01:10:13 【问题描述】:

我一直在调试我一直在使用的 Windows 服务,没有任何明显的问题。我曾经通过installutil 命令安装它,并且能够调试它(遵循this MSDN 教程)。

将服务部署到生产服务器意味着要打包所有依赖项非常痛苦,所以我被鼓励通过某种安装程序来部署它。

哪一个? “又快又脏”的解决方案:Visual Studio installer

一切都运行良好,直到我需要调试已安装的服务器,就像我一直在做的那样。我附加了 Windows 服务进程,但调试器没有在我的断点处停止。

我到底错过了什么?

【问题讨论】:

【参考方案1】:

在我写这个问题时,我问自己我是如何配置构建属性的。令我惊讶的是,它被设置为release

我把它改成了debug,卸载了服务,又重新安装了,终于调试好了我的服务。

请记住,我总是通过右键单击项目名称并单击“安装”来安装服务。似乎这需要将安装程序放置在指定的构建配置上。

问题是该服务应该唯一地安装在生产服务器上。我应该始终部署发布版本,以便完全干净和优化,所以我想我将不得不继续交换这个选项,至少对于我自己的工作空间。

是的,我的installutil 指向调试构建

【讨论】:

以上是关于如果 Windows 服务由 Visual Studio 安装程序安装,则无法调试它的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 6.0 在 Windows 10 下崩溃的一种解决方法

stu--CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning

安装可以由非管理员用户启动的 Windows 服务

Visual Stu dio(vs)2015企业版有没有?

在 Windows 容器中运行 Visual Studio 远程调试器(由 Docker 管理)

检测程序是不是由 Visual Studio 运行,而不是从 Windows 资源管理器运行