【问题标题】:Unable to debug .NET after VS 2019 upgradeVS 2019 升级后无法调试 .NET
【发布时间】:2020-12-18 13:46:24
【问题描述】:

我正在使用 VS 2019 调试 SQL Server CLR C# .NET 代码。我收到了来自 VS 的升级通知并重新启动。我现在在尝试调试时遇到错误

无法调试 .NET 代码。无法附加到“....”上的 SQL Server。 64 位版本的 Visual Studio 远程调试器 (MSVSMON.EXE) 不能用于调试 32 位进程或 32 位转储。请改用 32 位版本。

现在我的 SQL Server (2019) 是 64 位的,而 SQLCLR 平台目标是 x64,那么是什么让它认为涉及 32 位进程?

SQL Server 和 VS 2019 也在同一台机器上,这不是远程机器问题。

【问题讨论】:

标签: c# sql-server sqlclr sql-server-2019


【解决方案1】:

我需要以 管理员身份运行 VS 2019 - 解决了问题。错误信息非常具有误导性。

我尝试更改防火墙设置,但没有成功。

【讨论】:

    【解决方案2】:

    看起来您正在尝试使用 64 位 远程调试器工具而不是 32 位远程调试器工具进行调试。

    到 SQL 的连接组件可能是 32 位的,这就是它失败的原因。

    https://visualstudio.microsoft.com/downloads/#remote-tools-for-visual-studio-2019

    【讨论】:

    • 为什么要求 OP 使用 32 位 远程调试器工具?虽然错误消息声称 "32-bit",但不要忘记 OPs 环境是 Windows 64 位、SQL Server 64 位(+ SQLCLR 64 位)。此外,OP 的环境在重新启动之前正在运行。远程调试设置保存在 Visual Studio 项目设置中,因此不太可能仅仅因为 VS 升级 + 重新启动而更改它。
    • 因为它试图对 32 位代理使用 64 位远程调试器会话。否则他们可以确保调试为 x86 而不是 AnyCPU。
    • “32 位代理” 是 SQL Server x64。无论如何,这一切都没有实际意义,因为一切都是本地机器。远程调试器不是必需的,OP 也没有直接使用
    • 我理解您的想法,但根据错误,它指出需要 32 位调试会话才能访问 32 位调试工具代理。 SQL Server 是 64 位的,但这并不意味着托管调试会话的远程进程是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2019-08-24
    • 2021-01-20
    • 2017-02-25
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    相关资源
    最近更新 更多