12

我有一个 ASP.NET MVC 项目,其中一个 ASP.NET web api 定义为该项目中的一个区域。所以结构如下:

MVC Web
   Controllers
   Views
   Areas
     API (web API)
       Controllers

该应用程序按预期工作。但是,我在调试时遇到问题。我可以在 MVC 控制器中放置一个调试器,它可以按预期工作。我无法在 Web API 控制器中放置断点,因为我得到“断点当前不会被命中。没有为此文档加载任何符号。” 我已经为此苦苦挣扎了一段时间,所以这可能是一个简单的解决方法,但我无法弄清楚。当我可以调试 MVC 控制器时,任何想法为什么我会在 Web API 控制器上遇到这个问题?

4

9 回答 9

25

在找到永久解决方案之前,您可以使用该方法System.Diagnostics.Debugger.Break()强制在该行上发生中断 - 就像断点一样:

public ActionResult IndexCheckInOut(string providerKey, DateTime? date = null)
{
    System.Diagnostics.Debugger.Break();   
    return View("Index");
}

以下是一些文章链接,可能会帮助您找到更持久的解决方案:

断点当前不会被命中

使用 Visual Studio 调试器进入 ASP.NET MVC 源代码

于 2013-01-01T13:22:06.360 回答
5

对我来说,只需停止 IIS 并重新启动 Visual Studio。在进一步调查之前绝对值得一试。

于 2016-10-04T11:41:47.050 回答
4

可能的解决方案:我忘记了我之前正在做一些远程调试,并且已将调试符号设置为从 UNC 路径而不是 Microsoft 符号服务器加载。

要解决此问题,请执行以下操作:工具 -> 选项 -> 调试 -> 符号 -> 确保选中“Microsoft 符号服务器”。

我还通过创建新的解决方案配置而不是基于任何现有配置(例如 DEBUG 配置)发现了这个问题。这导致Debug Info设置为none.

要解决此问题:右键单击您的项目 -> 属性 -> 构建 -> 确保设置了错误的解决方案配置 -> 单击Advanced-> 更改Debug Infofull.

于 2016-06-07T01:23:08.627 回答
3

打开:

工具 - 选项 - 调试 - 常规

选择:

  • 启用 .NET Framework 源单步执行

  • 启用源服务器支持(选择所有选项)

打开:

工具 - 选项 - 符号

选择Microsoft 符号服务器

单击加载所有符号

重建项目。

选择:

干净的

重建

重建解决方案并重试。

于 2019-02-25T18:00:42.123 回答
1

我自己就遇到了这个问题,我把头发扯了大约一个小时,直到我意识到 Visual Studio 已经神秘地切换到在“发布”模式下运行项目。切换回“调试”模式并重新构建让我很满意。

可能是这个问题的一个非常利基的答案,但希望这对某人有所帮助。

于 2019-09-11T15:23:46.423 回答
0

我的问题如下

我在 IIS 中创建了一个虚拟目录,并在我的起始 URL 链接中使用该名称,例如 http://WebAPI/swagger/ui/index (我的符号未使用上述所有步骤加载)

  1. 使用 IIS Express
  2. 从名为 WebAPI 的 IIS 管理器中删除了网站
  3. 我改回的起始 URL 是 http://localhost:59788/swagger/ui/index (来自 Visual Studio 的默认端口)

现在我的所有符号都已加载。

于 2021-04-08T12:08:15.377 回答
0

我有同样的问题,但我的与添加配置转换有关。转到活动解决方案配置下的构建 > 配置管理器,确保您选择了调试。

于 2019-09-11T19:03:27.100 回答
0

这解决了我的问题:

  • 从系统托盘中的所有实例关闭\退出IIS Express(在 Windows 时钟旁边)。
  • 删除项目目录中的文件binobj
  • 重新启动 Visual Studio
  • 再次运行它

在此处输入图像描述

于 2019-01-23T14:47:50.820 回答
0

如果您的调试工作并突然停止工作,根据我的经验,最常见的原因是 IIS 中的问题。

  1. 检查项目-> 属性-> 项目 URL 是否正确,
  2. 使用 IISReset 重置 IIS
于 2021-09-23T10:56:26.277 回答