【问题标题】:Unable to debug web page code but can debug code in global.asax无法调试网页代码,但可以调试 global.asax 中的代码
【发布时间】:2015-12-16 07:16:56
【问题描述】:

当我在起始页的 page_load 上放置断点时,我收到以下消息。 “断点不会被命中。没有为此文档加载任何符号。” 我以前见过这种情况,通常通过清理解决方案并再次运行来解决这个问题。但是,这一次,我无法找到解决方案。这次更奇怪的是,如果我在 global.asax 中设置断点,例如 Application_BeginRequest,断点会命中并且我可以调试,这发生在我添加断点的任何页面上。

如果我转到 menus\Debug\Windows\Modules,我可以看到 Web 应用 DLL 不是使用调试信息构建的。

【问题讨论】:

  • 我还想提一下,我可以调试其他网络应用程序,但不能调试这个。此外,我在使用相同网络应用的其他计算机上也没有调试问题。

标签: asp.net iis visual-studio-2015 windows-10 postsharp


【解决方案1】:

在调试时,让断点正常工作的两件事包括 .dll 和 .pdb 文件。如果您查看项目的 bin 文件夹。这两个文件将放在一起,并且必须具有相同的“修改日期”,这意味着它是在构建时一起创建的。

如果这两个文件没有以任何原因一起创建。某些文件的某些代码行不会被断点击中。您还可以通过导航到“调试”>“Windows”>“模块”在调试时查看。然后找到您要调试的目标 dll,例如 YourApp.dll。然后在符号状态列中查看。如果它工作正常,我将显示已加载的符号。

这可能发生在许多原因中,例如您更改了代码中的某些内容(这种情况可能是您的 aspx 文件)然后您在没有构建的情况下进行调试。

要解决此问题,您可以转到“工具”>“选项”>“项目和解决方案”>“构建并运行”,将“在运行时,当项目过期”设置为“始终构建”,以确保您的项目在去之前始终构建调试。

【讨论】:

  • 很好的建议,但我仍然遇到问题。我确实注意到我的项目没有生成任何 .pdb 文件。
【解决方案2】:

我的问题原来与 AOP 框架 PostSharp 有关。我卸载它并重新安装它,现在一切都在正确调试。顺便说一句,我喜欢 PostSharp,我强烈推荐它。但是,我想发布我的问题和解决方案,以防有人遇到同样的问题并且目前正在使用 PostSharp。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 2021-10-18
    • 2020-06-21
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    相关资源
    最近更新 更多