如何在Visual Studio中以调试模式停止/终止Windows服务

时间:2014-06-13 15:29:14

标签: visual-studio debugging service windows-services visual-studio-debugging

我在本地计算机上安装了Windows服务,并从服务控制管理器启动了它。然后我在Visual Studio 2013中打开了它的C#.Net解决方案,转到“附加到进程”屏幕并成功连接到服务。 VS2013切换到调试模式,然后该过程达到其第一个断点。我做了一些调试,然后想要在某一点上杀死服务(基本上不希望它运行其余的代码)。因此,在断点处执行执行时,我转到服务控制管理器并尝试发送停止命令。几分钟后,我收到一条消息,说明没有命令可以成功发送到服务。然后,我点击了VS2013中的“停止调试”按钮。这使我在VS2013中退出调试模式,但似乎服务仍在继续并在后台执行其余代码。我可以在数据库中看到我想要阻止的更新。

问题是,在这种情况下,如何在某个断点处停止/终止服务,以便它不会执行其余的代码?

2 个答案:

答案 0 :(得分:0)

我不知道你是否可以在VS中执行此操作,但是当我在C ++ Builder中调试服务时,附加到服务进程然后停止调试器会导致正在调试的进程。听起来VS只是简单地从过程中分离出来。看看是否有选项让VS不再那样做了。或者使用任务管理器来终止进程,就像@ForguesR建议的那样(假设您有权终止系统进程 - 让调试器终止进程可以解决这个问题,至少在UAC之前的旧操作系统版本上)。

答案 1 :(得分:-1)

我已经写了很多服务,但我从未调试过。

嗯,这不是真的,但在我弄清楚调试它们的痛苦之后,我再也没有调试过它。

如何?简单。

获取与服务相关的代码,并从逻辑相关代码中删除它。这样,您可以将另一个项目添加到您的解决方案中,该解决方案可以在一个易于调试的控或WPF应用程序。或者无论你喜欢什么。

首先跳过处理服务。

相关问题