【发布时间】:2019-09-08 21:45:06
【问题描述】:
我正在尝试查找 MVC 的一个问题,所以我想我会进入 ASP .NET Core 源代码。我已取消选中“仅启用我的代码”,并且已选中“启用 .NET Framework 源步进”(尽管我想这不是必需的)。我还选中了“启用源服务器支持”并启用了 Microsoft 符号服务器。
我踏入这一行
app.UseMvc();
最终我在 MvcApplicationBuilderExtensions.cs 中找到了这段代码。
VerifyMvcIsRegistered(app);
var options = app.ApplicationServices.GetRequiredService<IOptions<MvcOptions>>();
if (options.Value.EnableEndpointRouting)
{
单步执行此代码时,程序计数器开始跳动,我收到一个错误,指出几个局部变量无法获取该值,因为它不可用或已被优化掉。我认为这是因为源文件和符号文件不匹配。
我在 Visual Studio 2019 上运行它。它是 .net Core 2.2.203。我已经删除了符号缓存和 SourceServer 缓存。我试图找出我在代码中做错了什么以及原因。
实际上,在过去几年中,我曾多次尝试调试 .NET 源代码,但总是遇到同样的问题。在线帮助似乎都没有答案。是我做错了什么还是这不可靠?
【问题讨论】:
-
消息准确,与符号不匹配无关。顺便说一句,您正在调查什么错误?你确定它是一个错误*吗?如果你真的想以原始形式调试源代码,你应该克隆它,在你的项目中引用它并使用它。
-
我试图弄清楚为什么属性路由在 .NET Core 控制台应用程序中不起作用。见这里stackoverflow.com/a/50640882/2403720
-
这里向您展示如何调试 ASP.NET Core 源代码:levelup.gitconnected.com/…
标签: visual-studio debugging asp.net-core-mvc debug-symbols