【问题标题】:Visual Studio Remote Debugging a serviceVisual Studio 远程调试服务
【发布时间】:2011-10-08 02:22:40
【问题描述】:

我正在尝试使用 Visual Studio 2005 远程调试服务。

当我将 msvsmon.exe 作为应用程序运行时,我得到了 UI,我可以将其更改为 noauth 和 anyuser,然后当我尝试从 Visual Studio 远程附加到进程时,我得到一个错误,说它可以' t 附加到 msvsmon.exe 未在其中运行的会话中运行的进程。服务的会话为 0。

所以我可以成功地将 msvsmon.exe 作为服务运行,但我无法将其设置为 /noauth 和 /anyuser 模式。

服务的 binPath 为:“c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe”/service msvsmon90

/noauth 和 /anyuser 都是 msvsmon 的命令行开关。

在服务属性窗口中填写“启动参数”不会有任何影响。

将服务的 binPath 更改为:

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /service msvsmon90 /noauth /anyuser

也不起作用(因为服务无法正常启动)。

如何让远程调试监视器在 noauth 和 anyuser 模式下作为服务运行?

【问题讨论】:

    标签: debugging service visual-studio-2005


    【解决方案1】:

    不确定这是否适合您,但您是否尝试过使用 psexec(来自 sysinternals)在会话 0 上以交互方式运行 msvsmon?

    命令行将是这样的(来自提升的命令提示符):

    psexec –sd –i 0 "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /noauth /anyuser

    我正在做一些类似于在退出 Windows 时调试一些代码的事情。

    【讨论】:

    • /nosecuritywarn 也是必需的。
    【解决方案2】:

    您将需要一个额外的开关来抑制警告,因为在这种情况下程序实际上不会启动但会停留在警告消息中(您可以在添加 /port:xxx 参数时检查 btw 并看到没有抑制就没有指定端口的监听器)。

    所以工作示例:

        psexec –sd –i 0 "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /noauth /anyuser /port:4000 /nosecuritywarn
    

    【讨论】:

    • 开关“/nosecuritywarn”做到了。谢谢!
    【解决方案3】:

    另一个有用的开关是 /nowowwarn 抑制 64 位计算机上 Win32 监视器的警告。 要查看所有可用开关的完整列表,请运行 \msvsmon /?

    【讨论】:

      猜你喜欢
      • 2014-10-25
      • 2011-09-10
      • 2011-07-30
      • 2021-12-01
      • 2011-05-15
      • 2023-03-29
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多