无法调试Windows服务VS2010 Win7

时间:2012-04-20 08:58:14

标签: c# .net visual-studio-2010 windows-7 service

从XP和VS2005迁移到Win7和VS2010后,我无法调试任何服务。

我可以编译,我可以安装,我可以正确运行服务。

但是,我需要调试它们。当我尝试连接到进程时,我像在VS2005上一样选择正在运行的进程,并且收到一个错误,告诉我需要管理员权限。

我已经是管理员了。此外,在互联网上搜索了很多,我发现运行VS2010作为管理员(通过右键单击)应该修复它,但我仍然不能。

我还尝试在vslauncher.exe属性上标记复选框,以便始终以管理员身份运行它。 VS2010窗口显示它实际上以管理员身份运行,但同样,当我尝试连接到流程时,它表示我需要管理员权限。

有没有人知道如何继续?

2 个答案:

答案 0 :(得分:3)

编辑您的服务并将以下行放入OnStart()方法:

Debugger.Launch();在OnStart()中执行此操作非常重要,而不是OnStart()启动的线程,这样如果有任何错误,您可以在服务崩溃之前捕获它。

当您的服务启动时,调试器将会打开。然后,Windows将提供自动启动高架视觉工作室,以便您可以附加到您的服务。我发现将此行放入app.config设置非常有用,这样您就可以根据需要启用它(即启动并将调试器附加到服务中)。

仅当您使用Vista / Windows 7时,您可以以管理员身份运行应用程序。但是,这些应用程序明确拒绝管理权限,除非您使用“提升”权限启动它们。这是一个名为UAC的安全功能。

答案 1 :(得分:3)

这是权限问题。 Win7附带了一个新的安全系统,我必须添加到我的个人资料(甚至是管理员)这个权限:

控制面板 - >管理工具 - >本地安全政策 - >本地政策 - >用户权利分配 - >调试程序 - >添加用户或组。

在那里,我添加了自己的用户。重启机器(重要!!没有重启,它不会工作)。

之后,我能够附加进程来调试它们。解决这个问题已经很长时间了,我希望能帮助其他找到同样问题的人。

感谢大家的帮助。