MVC项目中的Web API没有达到断点("未加载符号")

Bri*_*ins 11 asp.net debugging asp.net-mvc asp.net-web-api

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

MVC Web
   Controllers
   Views
   Areas
     API (web API)
       Controllers
Run Code Online (Sandbox Code Playgroud)

该应用程序按预期工作.但是,我遇到调试问题.我可以在MVC控制器中放置一个调试器,它按预期工作.我不能在Web API控制器中放置断点,因为我得到"断点当前不会被命中.没有为此文档加载符号." 我已经有一段时间了,所以这可能是一个简单的修复,但我无法弄明白.当我可以调试MVC控制器时,有什么想法为什么我会遇到Web API控制器的这个问题?

Sam*_*ath 24

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

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

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

断点当前不会被击中

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

  • 最后一个环节是解决方案.我的解决方案是禁用"只启用我的代码". (4认同)

hva*_*an3 5

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

要修复此问题,请转到:工具 -> 选项 -> 调试 -> 符号 -> 确保选中“Microsoft 符号服务器”。

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

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


小智 5

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