将Visual Studio调试器附加到Windows服务 - "附加"灰色

Kev*_*ail 39 c# windows-services visual-studio-2010

我试图使用Visual Studio 2010→ 调试附加到处理命令附加到Windows服务.当我滚动进程列表时,我的Windows服务显示为灰色,附加按钮也显示为灰色.

我已尝试将服务帐户更改为本地服务,我的帐户等,但它仍然是灰色的.有没有办法解决这个问题?

Jef*_*Fay 62

我通常有同样的问题,我通过在配置中添加一个布尔值来触发调试启动来处理它.您可以通过调用以下命令启动附加到Windows服务进程的Visual Studio调试器实例:

System.Diagnostics.Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)

有什么好处,你可以在代码中的任何地方调用它.


Pre*_*haA 39

在Visual Studio 2010中,在"附加到进程"对话框中,选中底部的两个复选框,其中显示 " 显示所有用户进程 "和" 在所有会话中显示进程 ".

在这样做时,我发现我的进程出现了两次,一次运行为System,另一次运行在我本地的Windows登录下.我不确定为什么(对此的任何输入都会很棒!),但是我能够附加到出现的非灰色的那个,并且能够以这种方式逐步执行我的代码.

第二个是ozz在评论中指出的servicename.vshost.exe进程.

如果您仍然没有看到它,请确保您的服务仍在运行.有时,您可能会启动并自动停止的失败服务,因此不会显示在附加到选项中.

  • 这对我有用.我注意到的是"灰色"的一个,实际上是myservice.vshost.exe进程,但我没有注意到,因为名称很长,结尾被列隐藏了.使用PreethA指令显示的那个是要附加的真实过程.我猜测PreethA看到的2个是他的myservice.vshost.exe (4认同)

Fle*_*lea 7

我不仅要选择show processes from all usersshow processes in all sessions复选框; 我还必须单击Select按钮然后选择Managed代码.

在此输入图像描述