【问题标题】:Cannot watch contents of variables when debuggin ASP.NET 5 IIS Express调试 ASP.NET 5 IIS Express 时无法查看变量内容
【发布时间】:2023-03-28 11:40:01
【问题描述】:

当我调试 ASP.NET 5 Web 应用程序时,它会遇到断点,但我无法查看本地创建的变量的内容。

startup.cs 中使用空项目作为模板的示例代码:

public void Configure(IApplicationBuilder app)
{
    app.UseIISPlatformHandler();
    var dummy = DateTime.Now;

    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World! " + dummy);
    });
}

当我在“app.Run(....”上设置断点时,它会遇到断点,但我看不到变量 dummy 的内容。如果我将 dummy 添加到 Watch,它会显示 “错误 CS0103:名称 'dummy' 在当前上下文中不存在”。 虽然我可以看到 DateTime.Now 的内容,但每次我悬停它时,它都会给我准确的日期和时间。 当我在 MVC 控制器中放置一个断点并在那里观察变量时,也会发生同样的情况。

我正在学习 Pluralsight 课程,并且我在学习该课程时创建的项目以及课程附带的示例文件也有这个。

在调试VS2015时附加到dnx.exe进程 在视频中,我看到 VS2015 附加到 IISExpress.exe 进程。但那门课是从十一月开始的。 2015 年也许同时发生了一些变化。

重新启动机器没有帮助。

这是我在这里的第一个问题,如果需要更多信息,请告诉我,我会尽力提供。

【问题讨论】:

  • 抱歉,如果这是一个愚蠢的问题,但您是在调试模式还是发布模式下运行您的应用程序?在发布模式下,进行了优化,使某些变量的值无法显示。
  • @Pooven 是的,它处于调试模式,平台是任何 CPU。我看到我昨天没有正确描述这个问题。我已经添加了我得到的错误。

标签: c# asp.net-core visual-studio-debugging dnx


【解决方案1】:

我找到了答案。有时一夜的休息会创造奇迹。

我对“错误 CS0103:名称在当前上下文调试中不存在”进行了 Google 搜索。如果没有“调试”这个词,你会得到很多没有帮助的结果。 我找到了以下网站:https://connect.microsoft.com/VisualStudio/feedback/details/1038150/visual-studio-2015-debugger-doesnt-recognize-a-variable

答案是:菜单 > 调试 > 选项,“使用托管兼容模式”。检查了该选项,它对我有用。 也适用于我正在进行的项目。

【讨论】:

  • 花了我一整天才找到这个。
  • 尽管它确实有效,但它仍然是一种解决方法,我认为可能存在潜在问题。
  • 可能是,但它奏效了,所以我很高兴 ;-) 我认为这是您在使用前沿/预发布技术时免费获得的东西之一。
  • 除了这个设置,我还得更改一些项目级别的设置:stackoverflow.com/questions/8311303/…
【解决方案2】:

整天都在寻找这个。启用使用托管兼容模式就可以了。它允许我快速查看我的类的内容,这样我就可以看到我的一个 get 方法是引用自身而不是类属性。愚蠢的错字打破了我的申请。 所以我同意这是一种解决方法,并不能解决根本问题,但它有助于找到它!

【讨论】:

  • 但这不是解决方案。
猜你喜欢
  • 2016-08-25
  • 2010-10-12
  • 2012-01-01
  • 2013-10-28
  • 1970-01-01
  • 2021-02-10
  • 2018-07-09
  • 1970-01-01
  • 2010-09-11
相关资源
最近更新 更多