我有一个ASP.NET MVC项目,将ASP.NET web api定义为此项目中的一个区域。所以结构如下:
MVC Web
Controllers
Views
Areas
API (web API)
Controllers
该应用按预期工作。但是,我遇到调试问题。我可以在MVC控制器中放置一个调试器,它按预期工作。我不能在Web API控制器中放置断点,因为我得到“断点当前不会被命中。没有为此文档加载符号。”我已经有一段时间了,所以这可能是一个简单的修复,但我无法弄明白。当我可以调试MVC控制器时,有什么想法我为什么会遇到Web API控制器的问题?
答案 0 :(得分:24)
在找到永久性解决方案之前,您可以使用方法System.Diagnostics.Debugger.Break()
强制在该行上发生中断 - 就像断点一样:
public ActionResult IndexCheckInOut(string providerKey, DateTime? date = null)
{
System.Diagnostics.Debugger.Break();
return View("Index");
}
以下是一些文章的链接,可能有助于您找到更持久的解决方案:
The breakpoint will not currently be hit
Stepping into ASP.NET MVC source code with Visual Studio debugger
答案 1 :(得分:4)
可能的解决方案:我忘记了我之前正在做一些远程调试,并设置了从UNC路径而不是Microsoft Symbol Servers加载的调试符号。
要解决此问题,请执行以下操作:工具 - >选项 - >调试 - >符号 - >确保' Microsoft Symbol Servers'检查。
我还发现这个问题来自创建新的解决方案配置,而不是基于任何现有配置,例如DEBUG配置。这导致Debug Info
设置为none
。
要解决此问题:右键单击您的项目 - >属性 - >构建 - >确保设置了错误的解决方案配置 - >点击Advanced
- >将Debug Info
更改为full
。
答案 2 :(得分:3)
对我来说,它只是停止IIS并重新启动Visual Studio。在进一步调查之前绝对值得一试。
答案 3 :(得分:1)
打开:
工具-选项-调试-常规
选择:
启用.NET Framework源代码步进
启用源服务器支持(选择所有选项)
打开:
工具-选项-符号
选择 Microsoft Symbol Servers
点击加载所有符号
重建项目。
选择:
清洁
重建
重建解决方案,然后重试。
答案 4 :(得分:1)
我自己只是遇到了这个问题,并且一直在扯头发大约一个小时,直到我意识到Visual Studio神秘地切换为以“发布”模式运行该项目。切换回“调试”模式并进行重建使我失望。
这个问题可能是一个非常小众的答案,但是希望这对某人有帮助。
答案 5 :(得分:0)
答案 6 :(得分:0)
我遇到了同样的问题,但是我的问题与添加配置转换有关。转到“活动解决方案配置”下的“构建”>“配置管理器”,确保已选择“调试”。
答案 7 :(得分:0)
我的问题如下
我在 IIS 中创建了一个虚拟目录,并在我的起始 URL 链接中使用该名称,例如 http://WebAPI/swagger/ui/index (我的符号没有加载以上所有步骤)
现在我的所有符号都已加载。