我有几个 ASP.NET Core 网站 (.NET 7),每个网站都在我的本地开发计算机的 IIS 和远程服务器的 IIS 上运行良好。
当我调试网站时,我使用 Visual Studio 的
Attach to process
对话框。在该对话框中,显示了所有进程的进程类型。
对于这些网站的 w3wp.exe 进程,我观察到一些奇怪的事情:
部分网站流程:
Managed (.NET Core, .NET 5+), x64
Automatic: Managed (.NET Core, .NET 5+) code
一些网站流程:
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
?我需要更改它以允许调试。
@DhyMik 你解决这个问题了吗?如果是这样,请发布您的解决方案