Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio x64上的x86远程调试器服务_Visual Studio_Debugging_Remote Debugging - Fatal编程技术网

Visual studio x64上的x86远程调试器服务

Visual studio x64上的x86远程调试器服务,visual-studio,debugging,remote-debugging,Visual Studio,Debugging,Remote Debugging,是否可以将x86远程调试器作为服务安装在64位计算机上?我需要将调试器附加到会话0进程中的托管代码。进程运行32位,但安装的调试器服务为64位,不会附加到32位进程 我尝试使用SC命令创建服务,并且能够启动该服务,并验证它是否在任务管理器进程中运行。然而,当我试图用VisualStudio连接到它时,它说远程调试器监视器没有启用。当我停止x86服务并启动x64服务时,它能够找到监视器,但仍然出现错误 以下是我尝试使用远程调试器时出现的错误: 无法附加到进程。Visual Studio远程调试监视

是否可以将x86远程调试器作为服务安装在64位计算机上?我需要将调试器附加到会话0进程中的托管代码。进程运行32位,但安装的调试器服务为64位,不会附加到32位进程

我尝试使用SC命令创建服务,并且能够启动该服务,并验证它是否在任务管理器进程中运行。然而,当我试图用VisualStudio连接到它时,它说远程调试器监视器没有启用。当我停止x86服务并启动x64服务时,它能够找到监视器,但仍然出现错误

以下是我尝试使用远程调试器时出现的错误: 无法附加到进程。Visual Studio远程调试监视器(MSVSMON.EXE)的64位版本无法调试32位进程或32位转储。请改用32位版本

以下是我尝试在本地连接时出现的错误: 此计算机不支持附加到其他终端服务器会话中的进程。尝试对计算机进行远程调试,并在进程会话中运行Microsoft Visual Studio远程调试监视器


如果我尝试将32位远程调试器作为应用程序运行,它将不起作用。附加b/c远程调试器正在我的会话中运行,而不是在会话0中运行。

我还没有尝试过这一点,但还是有一个建议:

尝试手动安装x86远程调试器服务

sc create "Remote Debugger" binpath= "C:\use\short\filename\in\the\path\x86\msvsmon.exe /service msvsmon90"
注二:

  • 您需要使用短文件名 在msvsmon.exe的路径中 避免引用路径 (因为整个指挥部需要 引述)
  • 后面一定有空位 “binpath=”(并且在 “=”字符)。是谁写的 sc的命令行解析器 命令应该被诅咒
然后,您可以使用services.msc控制面板小程序以正确的凭据使其运行

您可能必须停止甚至删除现有的x64远程调试器服务。

在安装rdbgsetup_x64.exe并通过配置向导后,此服务在我的机器(TM)上运行:

sc stop msvsmon90
sc config msvsmon90 binPath= "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe /service msvsmon90"
sc start msvsmon90

我可以证实你想做的事情确实会奏效。我经常使用VS2008远程调试器将我的32位xp工作站连接到x64 win2003服务器。

在尝试远程调试64位IIS中以32位运行的网站时,我们遇到了相同的问题

您也可以这样做:

  • 停止默认调试服务 (安装程序为x64 将被巧妙地配置 那一个要跑)
  • 导航到远程调试器启动 菜单文件夹并运行x86调试 服务忽略关于
    32位/64位
  • 打开工具的“工具->选项”窗口 远程调试器应用程序窗口和make
    注意“服务器”中的值
    “名称”文本框
  • 现在,您可以连接visual studio 通过复制“服务器名称”将其复制到服务器上
    值输入到“限定符”文本/组合中 “附加到进程”对话框上的对话框
    VisualStudio的

另一个相关的注意事项是,如果您从Windows 2008/7/Vista连接到2003计算机,并通过Connect here向MS报告(然后作为“外部”)时,Kerberos身份验证也存在一个低级错误:

为我工作,无需安装其他软件。我刚刚复制了虚拟机上的
C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
文件夹,并从
x86
文件夹启动了
msvsmon.exe
。我的来宾和主机都在安装x64版本。这也会安装x86调试器,但不会创建快捷方式

2) 您可以在此处找到x86进程调试的可执行文件。。。C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe


3) 如果愿意,请将其固定到任务栏。

有时会发生此错误,我只需关闭visual studio并再次打开它,一切正常


我今天遇到了这个问题(64位操作系统和VS2019)。我将配置更改为在项目中使用x64,将IISExpress更改为使用64位,将平台目标更改为x64。它仍然使用32位调试器并抱怨。最后,当我启用脚本调试时,它开始使用64位调试器。所以我想说,这一切的结合起到了关键作用。

我们已经向MS Connect提交了有关Kerberos身份验证问题的新错误:。如果其他人遇到这个问题,那么请投赞成票——我有一个隐秘的怀疑,Windows团队会简单地将它反弹回VS团队。这对我来说是一个魅力!谢谢只需从“开始”菜单运行x86选项。这比处理服务简单得多。对我来说很有用,但我还有一个额外的步骤——在从主机框输入限定符后,在服务器框上显示“是/否”提示以允许入站连接。当我安装远程调试工具时,它不包括指向x86调试服务的“开始”菜单链接。通过检查x64快捷方式导航到安装它的目录,您会找到它。您能提供有关该问题的更多详细信息吗?有问题的32位服务是什么?错误到底是什么-您暗示这是位,但64位调试器应该能够加载32位托管代码,afaik。“远程”调试器暗示其在服务器上。然后,您需要确保它已安装在服务器上。是的,它还与Visual Studio一起安装在工作站上进行本地调试。你刚刚复制了一个可执行文件,就像这是一个Mac或其他东西!!