远程调试asp.net

Posted

技术标签:

【中文标题】远程调试asp.net【英文标题】:remote debugging asp.net 【发布时间】:2012-08-03 20:16:44 【问题描述】:

我有一台服务器通过 IIS 运行我的 Web 应用程序。我在本地有 Visual Studio,我连接到远程 w3wp.exe 进程没有问题,但我的断点没有被命中,因为我的符号没有加载。

我错过了什么?

更新:我应该调试原生还是托管?当我执行 Native 时,Modules 窗口会显示大量无法打开 PDB 的 windows dll。我应该担心吗?我没有在列表中看到我的 dll。当我使用托管时,模块窗口完全是空的。

【问题讨论】:

您是否尝试过在本地处理 PDB 文件? 我在本地有 pdb 文件,但我的理解是,要远程调试,您必须将符号文件指向远程目录。 他们不必是远程的;只要它们是相同的 PDB 文件,以便校验和匹配。 PDB 文件需要知道源代码在哪里;如果 PDB 文件是在本地机器上生成的,那么查找源代码应该没有问题。 我现在尝试使用本地和远程路径都无济于事 附加后,如果点击Debug/Windows/Modules,可以查看每个DLL的符号加载信息。您可能会在其中看到指示无法加载符号的原因的信息。有什么好用的吗? 【参考方案1】:

发现问题。当我通过 Visual Studio gui 附加到该进程时,w3wp.exe 进程被列为 x86 而不是 Managed 4.0。我在 IIS 中重新创建了我的应用程序站点,并且该过程返回被列为托管,这允许加载符号。

【讨论】:

【参考方案2】:

确保您在调试模式下构建项目。此外,请确保您对远程服务器拥有足够的权限。

【讨论】:

我在调试模式下发布并查看 PDB 服务器端。我如何在服务器上检查权限? 当您浏览服务器上的项目文件夹时,您会看到 pdb 文件吗? 我看到了我的项目的一个 pdb,是的,位于 \\192.168.42.10\httpd\html\Chat\bin 符号工作不需要调试模式;你只需要符号。

以上是关于远程调试asp.net的主要内容,如果未能解决你的问题,请参考以下文章

使用远程 IIS 调试 ASP.NET 应用程序

从 VS2010 调试远程 IIS 服务器上运行的 ASP.NET 应用程序

Visual Studio 2017 远程调试

配置IIS Express,远程访问调试

Visual Studio 2012 中的远程调试

VS2015 远程调试:Remote Debugger