将进程附加到远程 PC 上正在运行的进程

2024-03-29

我正在开发一个 C# 应用程序,该应用程序在远程 PC 上运行。我有 VPN 连接并使用 RDP 会话,我可以登录到该计算机。

在那台计算机上,在正在运行的进程旁边,还有两个“msvsmon.exe”进程,在任务管理器中具有以下“命令行”条目:

  • C:\Program Files\...\Common\IDE\Remote Debugger\x86\msvsmon.exe
  • C:\Program Files\...\Common\IDE\Remote Debugger\x86\msvsmon.exe /CHILDSERVER 428 "+:4022" {...}

(我想这意味着监控服务器正在运行并且监控服务器正在监听端口 4022。)

我检查了我的应用程序:任务管理器明确指出我的应用程序是 32 位的,因此x86“msvsmon.exe”应该是一个不错的选择。

在我的本地电脑上,我尝试打开远程连接,但这似乎不起作用:我使用“默认”连接类型,但在“远程连接”窗口的“查找...”对话框中,我有尝试了不同的可能性:

  • 10.39.50.50
  • 10.39.50.50:4022
  • 地址:“10.39.50.10”
  • 地址:“10.39.50.10:4022”
  • 地址:“10.39.50.10”:4022

=> 刷新后,所有这些尝试都导致“显示 0 个连接中的 0 个”

我已经打开 VS 2017 的开发人员命令提示符并输入ping 10.39.50.10,它清楚地显示了结果(这是正常的,因为我有一个对该计算机开放的 RDP 会话)。

我相信远程调试使用除常规 TCP/IP 之外的其他“通信通道”,这意味着我需要更改本地 PC 与远程 PC 之间的通信,但我可以使用哪个“通信通道”以及哪个命令(下一步)到ping)以检查通信的可用性?

进一步调试:我已经创建(并随后删除)提到的防火墙规则,但现在我正在处理以下错误消息:

Unable to connect to the Microsoft Visual Studio Remote Debugger
named '10.39.50.10:4022'.
The Remote Debugger was unable to locate a resource dll 
(vsdebugeng.impl.resources.dll).
Please ensure that the complete remote debugger folder was copied 
or installed on the target computer.  

在远程计算机上搜索该文件会得到以下结果:

C:\>dir /S /B vsdebugeng.impl.resources.dll
C:\Program Files (x86)\Microsoft SQL Server Management Studio 19\
Common7\Packages\Debugger\1033\vsdebugeng.impl.resources.dll

=> 为什么找不到该文件?

(我已经检查过并且msvsmon.exe进程正在以管理员身份运行(Elevated=“Yes”))


显然,你不能依赖基于 SQL Server Management Studio 的“msvsmon.exe”安装:

在我的计算机上安装了 Visual Studio,因此我可以找到“msvsmon.exe”:

C:\>dir /S /B msvsmon.exe
C:\...\Microsoft Visual Studio\2017\...\Common7\IDE\Remote Debugger\x86\msvsmon.exe

资源库:

C:\>dir /S /B vsdebugeng.impl.resources.dll
C:\...\Microsoft Visual Studio\2017\...\Common7\IDE\Remote Debugger\x86\1033\vsdebugeng.impl.resources.dll

换句话说:“1033”(英语区域设置)目录存储在“x86”目录下,可以在其中找到“msvsmon.exe”。

在远程计算机上,“msvsmon.exe”安装在 SQL Server Management Studio 下,它具有另一种结构(这是错误的):

C:\>dir /S /B msvsmon.exe
C:\...\Microsoft SQL Server Management Studio 19\Common7\IDE\Remote Debugger\x86\msvsmon.exe

C:\>dir /S /B vsdebugeng.impl.resources.dll
C:\...\Microsoft SQL Server Management Studio 19\Common7\Packages\Debugger\1033\vsdebugeng.impl.resources.dll

显然,“msvsmon.exe”会查找“1033”子目录以查找资源 dll,因此需要复制整个目录:

C:\>dir /S /B vsdebugeng.impl.resources.dll
C:\...\Microsoft SQL Server Management Studio 19\Common7\IDE\Remote Debugger\x86\1033\vsdebugeng.impl.resources.dll
C:\...\Microsoft SQL Server Management Studio 19\Common7\Packages\Debugger\1033\vsdebugeng.impl.resources.dll

将整个“1033”目录复制到“msvsmon.exe”目录下后找到的一个解决了问题。

额外信息:1033 从哪里来?

This URL https://learn.microsoft.com/en-us/visualstudio/ide/reference/lcid-devenv-exe?view=vs-2022提到 Visual Studio 的语言设置和所提到的子目录的值之间的链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将进程附加到远程 PC 上正在运行的进程 的相关文章

随机推荐

  • iOS 错误:“xxxx”没有可见的 @interface 声明选择器“alloc”

    这是我的 TextValidator 类 TextValidator h import
  • 如何在 Spark Java 中遍历/迭代数据集?

    我正在尝试遍历数据集来进行一些字符串相似度计算 例如 Jaro winkler 或余弦相似度 我将数据集转换为行列表 然后使用 for 语句进行遍历 这不是有效的 Spark 方法 所以我期待 Spark 中有更好的方法 public cl
  • 具有多个 url 路径的 CherryPy MethodDispatcher

    是否MethodDispatcher from CherryPy处理多个 url 路径 我正在尝试做类似下面的事情 但是虽然要求 customers工作正常 要求 orders始终返回 404 没有任何内容与给定的 URI 匹配 class
  • Node.js 中的作业队列

    我正在node js 中寻找一个可以由php 调用的作业队列管理器 这是一个需要发送电子邮件 创建 pdf 文件等的 Web 应用程序 我想对这些应用程序执行异步 php 进程 流程示例 用户请求 php 页面 Php调用作业队列管理器并添
  • 如何订购 kif 测试用例序列?

    我使用了最新版本的 KIF 框架并创建了几个测试用例 KIFTestCase 的子类 我可以知道有什么方法可以改变测试运行序列的顺序吗 例如我有 testA m testB m testC m 当我按下 cmd U 进行测试时 如何制作诸如
  • C# 字段命名指南?

    我将自己编写一些 C 代码 但我想确保遵循最广泛接受的命名约定 以防我想引入其他开发人员 发布我的代码或出售我的代码 现在我遵循微软设定的命名约定 因为它们似乎是最广泛接受的 他们没有提到的一件事是私有字段的命名 在大多数情况下 我看到它们
  • FindNextFile 在 64 位 Windows 上失败?

    使用 C Builder 2007 FindFirstFile 和 FindNextFile 函数似乎无法在 64 位版本的 Vista 和 XP 上找到某些文件 我的测试应用程序是 32 位的 如果我使用它们遍历文件夹 C Windows
  • 任意金额、任意时间的定期付款?

    我们希望找到一个支付提供商 可以让我们做类似于 Hailo 的事情 即 用户注册并向我们提供他们的信用卡详细信息 授权我们向他们的帐户收费 他们只需要这样做once 在 Hailo 的例子中 用户可以随时乘坐出租车并收取任意金额的费用 在合
  • 通过 emacs shell 进行 ssh 吗?

    我想知道是否有人通过 emacs shell 使用 ssh 我能够连接到远程计算机 但无法使用 emacs 文件名 打开文件以使用 emacs 查看 编辑 因为 终端类型 哑 不足以运行 emacs 通常 emacs 会在控制台中打开 通过
  • 尚不支持运算符重载?

    根据 Swift 编程指南 运算符重载是允许的 而且实际上非常通用 但是 我无法让它在操场上工作 例如 Equatable协议想要这样 func lhs Self rhs Self gt Bool 假设我做了一个简单的Location3D
  • VS Code:“isort 服务器在过去 3 分钟内崩溃了 5 次......”

    我可能弄乱了一些环境路径变量 我一边学习 Django 和虚拟环境 一边修改 VS Code 并更改了 Python 安装的目录路径 在弄清楚如何指向 VS Code 的默认 Python 路径时 我删除了一些用户路径变量 然后 伊索开始拒
  • 如何在 google colab 中运行 matlab .m 文件

    我目前正在尝试运行这个存储库https github com Fanziapril mvfnet https github com Fanziapril mvfnet这需要一个步骤 Run the Matlab ModelGeneratio
  • 已确认设计在最新版本中不起作用

    我最近从 Devise 1 2 升级到 1 4 9 除了我的可确认模块之外 一切似乎都正常 电子邮件以及整个过程都有效 但确认页面始终是空白的 它可以工作并确认电子邮件帐户 但不会重定向用户并引发 406 错误 对于错误确认尝试 它也会执行
  • iframe 不工作

    我正在尝试让 Iframe 正常工作 我正在运行 safari 所以它是兼容的 但是当我测试它时 它显示为空白 代码 p Your browser does not support iframes p 使用 尝试一下 编辑器后 我直接从 w
  • 您如何比较 IIS 和 Cassini 作为生产服务器?

    我有一个 ASP NET 网站 当前在 IIS 上运行 现在我想将该站点移至卡西尼号上运行 Cassini 与 IIS 相比有哪些优势 它的缺点是什么 您使用 Cassini 作为生产网络服务器的体验如何 据我所知 您不能在生产中使用 Ca
  • 比较给出错误输出的日期

    我正在创建一个函数来检查充满日期的数据库表中哪个日期小于当前日期 和过去一样 我有 3 个日期来测试该函数 以及它们背后的输出 上个月的日期 2015年4月28日 16 32 00日期尚未到来 11 06 2015 13 12 00上周日期
  • java并发:多生产者一消费者

    我遇到一种情况 不同的线程填充一个队列 生产者 并且一个消费者从该队列中检索元素 我的问题是 当从队列中检索这些元素之一时 某些元素会丢失 丢失信号 生产者代码是 class Producer implements Runnable pri
  • Perl 如何在空格上分割行,除非空格用双引号引起来?

    我有以下字符串 StartProgram 1 C Program Files ABC ABC XYZ CleanProgramTimeout 1 30 我需要一个正则表达式来分割这一行 但忽略 Perl 中双引号中的空格 以下是我尝试过的但
  • Time.advance 记录在哪里?

    在网上查了一下 我发现 RubyTime班级有Time advance 这是在哪里记录的 我在 Ruby API 文档中没有看到任何提及它here http apidock com ruby Time API 文档的搜索功能表明 任何地方都
  • 将进程附加到远程 PC 上正在运行的进程

    我正在开发一个 C 应用程序 该应用程序在远程 PC 上运行 我有 VPN 连接并使用 RDP 会话 我可以登录到该计算机 在那台计算机上 在正在运行的进程旁边 还有两个 msvsmon exe 进程 在任务管理器中具有以下 命令行 条目