无法在web api控制器中遇到断点
当我尝试调试此代码时:
// POST: api/Events [HttpPost] public async Task PostEvent([FromBody] object savedEvent) { Event addedEvent = JsonConvert.DeserializeObject(savedEvent.ToString()); if (!ModelState.IsValid) { return BadRequest(ModelState); }
无法达到这条线:
Event addedEvent = JsonConvert.DeserializeObject(savedEvent.ToString());
Debuger反应就像我点击继续但代码过去没有执行。 我真的很困惑。 谢谢你的帮助。
尝试删除操作的异步部分。 这不是一个永久的解决方案,但它可以帮助您调试。 我建议的另一件事是在你的行动中尝试捕捉代码。 您的反序列化可能会失败并抛出一个exception,无论出于何种原因,调试器都没有捕获。
// POST: api/Events [HttpPost] public ActionResult PostEvent([FromBody] object savedEvent) { Event addedEvent = JsonConvert.DeserializeObject(savedEvent.ToString()); if (!ModelState.IsValid) { return BadRequest(ModelState); }
你可以尝试几件事
1)确保您在调试模式下运行(不在发布中)
2)确保您正在运行加载了所有符号的最新代码(将鼠标hover在断点上可以为您提供有关其禁用的原因的额外信息)
您可能正在“发布”模式而不是“调试”中运行应用程序。
您无法在“发布模式”中设置断点(大多数情况下)。
符号(.pdb)文件中有什么内容? 符号文件的确切内容因语言而异,并且基于您的编译器设置,但在非常高的级别,它们是编译器如何将源代码转换为处理器执行的机器代码的记录。
资料来源: https : //blogs.msdn.microsoft.com/devops/2015/01/05/understanding-symbol-files-and-visual-studios-symbol-settings/
我发现有时清洁和重建有助于破解断点。 如果这没有帮助,重启Visual Studio也会有所帮助(特别是在2015年,至少在我的经验中)。
除此之外,我还遇到了内存泄漏的问题,导致我的应用只是输入到我的代码的某些部分,尽管这通常伴随着应用程序崩溃。
您没有提到任何错误或崩溃,只是代码没有执行,所以我不确定内存泄漏是否会导致您的问题。
尝试怎么样:
System.Diagnostics.Debugger.Launch();
启动并将调试器附加到该进程。 至少要确保你进入那里。
- ASP.NET Core 2.0禁用自动挑战
- 如何在ASP.NET Core中解析ConfigureServices中的实例
- 原始SQL查询和entity framework核心
- ASP.NET vNext – MissingMethodException:找不到方法:Microsoft.CodeAnalysis.Diagnostic> EmitResult.get_Diagnostics()’
- ASP.NET 5 MVC 6通用存储库模式
- 在ASP.NET核心中注入IUrlHelper
- 如何在动作filter中获取当前模型
- asp.net 5中的Windows身份validation
- .NET Core中的自定义授权属性