C# 调试asp.net mvc框架源代码时“没有为此文档加载任何符号”

C# 调试asp.net mvc框架源代码时“没有为此文档加载任何符号”,c#,asp.net,asp.net-mvc,debugging,C#,Asp.net,Asp.net Mvc,Debugging,我正在尝试调试asp.net mvc源代码。以下是我采取的步骤: 我使用Visual Studio 2017提供的模板设置了一个基本asp.net mvc应用程序版本5.2.4 我从下载了asp.NETMVC源代码,根据,MvcHandler将在代码路径中被命中,因此我在其processRequest方法中放置了一个断点 我按照microsoft参考网站上关于如何设置VS以及如何将其用作符号服务器的说明进行操作 在调试期间,我还确保System.Web.Mvc.dll已为MvcHandler加载

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

我使用Visual Studio 2017提供的模板设置了一个基本asp.net mvc应用程序版本5.2.4

我从下载了asp.NETMVC源代码,根据,MvcHandler将在代码路径中被命中,因此我在其processRequest方法中放置了一个断点

我按照microsoft参考网站上关于如何设置VS以及如何将其用作符号服务器的说明进行操作

在调试期间,我还确保System.Web.Mvc.dll已为MvcHandler加载dll

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

我读到的其他一些帖子:


您不需要下载MVC5源代码,符号和源服务器的全部目的是在调试时根据需要为您获取这些源文件

我使用它作为符号服务器

这可能是您的问题参考源仅适用于.NET Framework。为了获得MVC5符号和源文件,您需要添加不同的符号服务器,例如SymbolSource-请参阅

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

如果所有其他操作都失败了,因为您的计算机上已经有了MVC源代码,只需将解决方案指向-删除MVC DLL引用并在解决方案中包含并引用相关项目,或者将MVC DLL引用替换为对本地编译DLL的引用。这比使用符号服务器要痛苦和费力得多,但它也是100%可靠的

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

另请参见:

我解决了我的问题。 我没有使用Asp.net Mvc 5.2.4,而是在此处下载了最新的Mvc软件包: 这对我来说是个窍门,我做的一切都保持不变


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

您可以尝试清理解决方案,或者尝试以下操作:Debug=>Options=>General=>删除Enable Just My的复选标记Code@RahulSharma我尝试了这两种方法,但都没有成功:出现这种错误的原因可能有很多。我相信这个链接会帮助你解决问题:我认为第3点中的第一个链接没有达到你的预期目的。@IanKemp我更新了描述,在该页顶部附近有一个链接。根据2条相同的错误消息,我怀疑代码无法通过Zi参数进行调试,但无法确定是否真的感谢您的帮助。我尝试了你的建议,但仍然收到相同的错误消息。但在本地构建代码似乎很有希望。我以前避免了它,因为它需要更多的工作,但似乎这是我唯一剩下的选择……不幸的是,在当地建设也不起作用。因为,这很烦人。其他人也分享了我的沮丧: