我正在尝试使用Visual Studio 2010→调试→附加到进程命令附加到Windows服务。当我滚动进程列表时,我的Windows服务显示为灰色,附加按钮也显示为灰色。
我尝试将服务帐户更改为本地服务,我的帐户等,但它仍然是灰色的。有没有办法解决这个问题?
答案 0 :(得分:60)
我通常遇到同样的问题,我通过在触发调试启动的配置中添加布尔值来处理它。您可以通过调用以下命令启动附加到Windows服务进程的Visual Studio调试器实例:
System.Diagnostics.Debugger.Launch();
有什么好处,你可以在代码中的任何地方调用它。
答案 1 :(得分:38)
在Visual Studio 2010中,在“附加到进程”对话框中,选中底部的两个复选框,其中显示“显示所有用户的进程”和“显示所有进程”会话强>”。
在执行此操作时,我发现我的进程显示两次,一次以 System 运行,另一次在本地Windows登录下运行。我不知道为什么(对此的任何输入都会很棒!),但我能够附加到那些出现的非灰色的那个,并且能够以这种方式逐步完成我的代码。
第二个是ozz在评论中指出的servicename.vshost.exe进程。
如果您仍然没有看到,请确保您的服务仍在运行。有时,您可能会遇到启动并自动停止的失败服务,因此不会显示在附加选项中。
答案 2 :(得分:7)
我不仅需要选中show processes from all users
和show processes in all sessions
复选框;我还必须点击Select
按钮,然后选择Managed
代码。
答案 3 :(得分:2)
确保以管理员身份运行Visual Studio。它需要管理员权限才能附加到正在运行的服务。
答案 4 :(得分:2)
安装Windows服务后,启动它。然后在Visual Studio中打开附加到进程窗口( Alt + Ctrl + P ),找到您的进程并选择它并单击窗口底部的附加按钮。
答案 5 :(得分:0)
您可能无权附加到服务。您是否拥有桌面管理员权限?许多公司默认不允许这样做,据说可以帮助保护他们的环境。
答案 6 :(得分:0)
我通过更改生成设置的方式解决了我的问题,从RELEASE到DEBUG。然后,我安装了服务并照常安装。
答案 7 :(得分:-2)
使用菜单工具→附加到流程。只需检查左下方所有用户的显示流程即可。按进程排序,然后尝试查找您的Windows服务。
答案 8 :(得分:-2)
我今天遇到了同样的问题,以前的解决方案都没有。事实证明,如果您有ProcDump会话监控该流程,则无法附加到流程。