无法调试 ASP.NET Core 代码 - 代码类型为“x64”,因此调试器不会加载托管代码的符号

问题描述 投票:0回答:1

我有几个 ASP.NET Core 网站 (.NET 7),每个网站都在我的本地开发计算机的 IIS 和远程服务器的 IIS 上运行良好。

当我调试网站时,我使用 Visual Studio 的

Attach to process
对话框。在该对话框中,显示了所有进程的进程类型。

对于这些网站的 w3wp.exe 进程,我观察到一些奇怪的事情:

  1. 部分网站流程:

    • 有流程类型:
      Managed (.NET Core, .NET 5+), x64
    • 选择后,“附加到:”字段会显示
      Automatic: Managed (.NET Core, .NET 5+) code
  2. 一些网站流程:

    • 有流程类型:
      x64
    • 选择后,“附加到:”字段会显示
      Automatic: Native code

尽管据我所知,我正在使用相同的应用程序池并为所有进程发布设置。

在 Windows Server 2019 IIS 上运行的进程都以

x64
运行,而在我的开发计算机上,有些以
x64
运行,有些以
Managed (.NET Core, .NET 5+), x64
运行 - 尽管设置相似,但我不知道为什么会出现这种差异对于他们所有人。

现在的问题是,调试仅适用于案例 1 的进程(类型 =

Managed (.NET Core, .NET 5+), x64
),但对案例 2 的所有进程均失败(类型 =
x64
)。对于这些,相关模块的符号未加载消息
Native debugger skipped loading symbols for managed module.

将附加代码类型从

automatic
更改为
Managed (.NET Core, .NET 5+)
不起作用,附加失败并显示错误消息
Unable to attach to the process. Operation not supported. Unknown error: 0x92330062

添加信息:本地和远程 IIS 上的应用程序池都是

No managed code
。所有项目的部署设置都是相似的。

问题: 为什么某些 w3wp.exe 进程显示为类型

x64
而不是类型
Managed (.NET Core, .NET 5+), x64
?我需要更改它以允许调试。

.net visual-studio asp.net-core iis remote-debugging
1个回答
0
投票

@DhyMik 你解决这个问题了吗?如果是这样,请发布您的解决方案

© www.soinside.com 2019 - 2024. All rights reserved.