无法在web api控制器中遇到断点

Min*_*Gap 6 c# asp.net-web-api2 asp.net-core-mvc visual-studio-2015

当我尝试调试此代码时:

 // POST: api/Events
    [HttpPost]
    public async Task<IActionResult> PostEvent([FromBody] object savedEvent)
    {

        Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());

        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
Run Code Online (Sandbox Code Playgroud)

不能达到这条线:

   Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());
Run Code Online (Sandbox Code Playgroud)

Debuger反应就像我点击继续但代码过去没有执行.我真的很困惑.谢谢你的帮助.

Ali*_*aig 6

你可以尝试几件事

1)确保您在调试模式下运行(不在发布中)

像这样

2)确保您正在运行加载了所有符号的最新代码(将鼠标悬停在断点上可以为您提供有关其禁用的原因的额外信息)


小智 4

尝试删除操作的异步部分。这不是永久的解决方案,但它可能会帮助您进行调试。我建议的另一件事是在操作中的代码周围放置一个 try catch 。您的反序列化可能失败并抛出异常,无论出于何种原因,调试器都无法捕获该异常。

// POST: api/Events
[HttpPost]
public ActionResult PostEvent([FromBody] object savedEvent)
{

    Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());

    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
Run Code Online (Sandbox Code Playgroud)