【问题标题】:"No symbol has been loaded for this document" when debug asp.net mvc framework source code调试asp.net mvc框架源码时出现“No symbol has been loaded for this document”
【发布时间】:2019-04-02 15:56:16
【问题描述】:

我正在尝试调试 asp.net mvc 源代码。以下是我采取的步骤:

  1. 我使用 Visual Studio 2017 提供的模板设置了一个简单的 asp.net mvc 应用程序(版本 5.2.4)。

  2. 我从offcial github下载了asp.net mvc源代码,根据this,MvcHandler会在代码路径中被命中,所以我在它的processRequest()方法中放了一个断点。

  3. 我按照 microsoft 参考网站 (there is a link on the main page) 关于如何设置 VS 的说明进行操作,并使用“https://referencesource.microsoft.com”作为符号服务器。

  4. 在调试过程中,我还确保加载了“System.Web.Mvc.dll”(MvcHandler 的 dll)。

我想我得到了源代码和 pdb,但我仍然得到错误:“没有为此文档加载符号”。我想知道我可以采取哪些其他步骤来解决这个问题。

我读过的一些其他帖子:

(1) can't debug asp.net MVC

(2) same error message

【问题讨论】:

  • 你可以试试Cleaning你的解决方案或试试这个:Debug=>Options=>General => 去掉“Enable Just My Code”的复选标记
  • @RahulSharma 我都试过了,但都没有运气:(
  • 出现此错误的原因可能有很多。我相信这个链接会帮助你解决你的问题:developercommunity.visualstudio.com/content/problem/97445/…
  • 我认为,您在第 3 点的第一个链接没有到达您想要的位置。
  • @IanKemp 我更新了描述,该页面顶部附近有一个链接。根据“(2)相同的错误信息”,我怀疑代码是不可调试的(Zi参数),但不能确定

标签: c# asp.net asp.net-mvc debugging


【解决方案1】:

您应该不需要下载 MVC 5 源代码,符号和源服务器的全部意义在于在调试时根据需要为您获取这些源文件。

我使用“https://referencesource.microsoft.com”作为符号服务器

这可能是您的问题 - 参考源适用于 .NET Framework。为了获取 MVC 5 符号和源文件,您需要添加不同的符号服务器,例如 SymbolSource - 请参阅http://www.symbolsource.org/Public/Wiki/Using

您还应该知道,关于使用符号进行调试的许多信息已经过时。特别是在 VS 2017 及更高版本中,工具 > 选项 > 调试 > 常规下有一个新选项,称为“使用托管兼容模式”,应该取消选中

如果所有其他方法都失败了,因为您的机器上已经有 MVC 源,只需将您的解决方案指向 - 通过删除 MVC DLL 引用并在您的解决方案中包含并引用相关项目,或者通过替换 MVC DLL 引用引用您自己的本地编译的 DLL。这比使用符号服务器更加痛苦和努力,但它也是 100% 可靠的。

出于故障排除目的,“模​​块”窗口(调试时的“调试”>“窗口”>“模块”)非常宝贵;它将显示您的项目加载了哪些 DLL,为它们加载了哪些 PDB 以及从哪里加载,如果没有加载 PDB,它会告诉您原因。您还可以通过右键单击特定 DLL 并浏览到其位置来手动强制加载 PDB。

另见:Debugging Asp.net MVC 5.2.3 source code

【讨论】:

  • 非常感谢您的帮助。我尝试了您的建议,但仍然收到相同的错误消息。但是在本地构建代码似乎很有希望。我之前避免使用它,因为它需要更多的工作,但似乎这是我唯一的选择......
  • 不幸的是,在本地构建也不起作用。因为stackoverflow.com/questions/20212035/…,这很烦人。其他人也分享了我的沮丧:stackoverflow.com/questions/51337092/…
【解决方案2】:

我解决了我的问题。 我没有使用 Asp.net Mvc 5.2.4,而是在这里下载了最新的 Mvc 包:https://dotnet.myget.org/feed/aspnetwebstack-dev/package/nuget/Microsoft.AspNet.Mvc 这对我有用(我所做的一切都保持不变)。

因此,如果一个版本不适合您,请尝试其他版本!

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2020-03-13
    • 2023-03-25
    • 2018-09-26
    • 1970-01-01
    • 2013-07-05
    • 2017-04-17
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多