1

Wenn ich versuche, diesen Code zu debuggen:Cant schlagen Unterbrechungspunkt in Web-api Controller

// 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); 
     } 

Cant schlagen diese Zeile:

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

Debuger reagiert, wie ich weiter schlagen, aber Code Vergangenheit tut auszuführen. Ich bin wirklich verwirrt. Danke für Ihre Hilfe.

Antwort

1

Versuchen Sie, den asynchronen Teil der Aktion zu entfernen. Dies ist keine dauerhafte Lösung, aber es könnte Ihnen beim Debuggen helfen. Eine andere Sache, die ich vorschlagen würde, ist einen Versuch zu versuchen, um den Code in Ihrer Aktion zu fangen. Es ist möglich, dass Ihre Deserialisierung fehlschlägt und eine Ausnahme auslöst, die der Debugger aus irgendeinem Grund nicht abfängt.

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

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

    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 
+0

Entfernen von Async half. Es wurde eine Ausnahme in Newthonsoft Bibliothek geworfen. Jetzt sehe ich Debuggen von asynchronen Methoden kann ein wenig schwierig werden. Vielen Dank! –

3

Paar Dinge, die Sie versuchen können

1) Stellen Sie sicher, dass Sie im Debug-Modus (nicht im Release laufen)

Like this

2) Stellen Sie sicher, dass Sie mit den neuesten Code ausgeführt werden Symbole geladen (über den Breakpoint schweben kann Ihnen zusätzliche Informationen darüber, warum es deaktiviert)

+0

Ich habe vergessen, es zu erwähnen. Ich bin im Debug-Modus und Symbole sind geladen. –

+0

Es ist nichts falsch mit dem Code, also sollte es schlagen. Können Sie versuchen, den Neustart der Anwendung zu stoppen, können Sie auch andere Haltepunkte in der Anwendung treffen? –

+0

Das ist seltsam.Eine letzte Sache, die ich vorschlagen kann, ist, alles aus dem Ordner Bin zu entfernen, die Anwendung neu zu erstellen und es erneut auszuführen –

0

Ich habe festgestellt, dass manchmal Reinigung und Wiederaufbau hilft mit Flakey Breakpoints. Wenn das nicht hilft, kann das Neustarten von Visual Studio auch helfen (besonders mit 2015, zumindest in meiner Erfahrung).

Darüber hinaus hatte ich auch Probleme mit Speicherverlusten, die dazu führten, dass meine App nur bestimmte Teile meines Codes erreichte, obwohl dies normalerweise mit dem Absturz der App einhergeht.

Sie haben keine Fehler oder Abstürze erwähnt, nur der Code nicht ausgeführt, so dass ich nicht sicher bin, ob der Speicherverlust Ihr Problem verursachen würde.

0

Was zu versuchen:

System.Diagnostics.Debugger.Launch(); 

startet und fügt einen Debugger an den Prozess. Zumindest stellen Sie sicher, dass Sie da reinkommen.

0

Sie führen Ihre Anwendung wahrscheinlich im "Freigabe" -Modus statt "Debug".

Sie können im "Freigabemodus" keine Haltepunkte setzen (meistens).

Was befindet sich in einer Symboldatei (.pdb)? Der genaue Inhalt der Symboldateien variiert von Sprache zu Sprache und basiert auf Ihrem Compiler Einstellungen, aber auf einer sehr hohen Ebene sind sie die Aufzeichnung der Compiler Ihren Quellcode in Maschinencode, den der Prozessor ausführt.

Quelle: https://blogs.msdn.microsoft.com/devops/2015/01/05/understanding-symbol-files-and-visual-studios-symbol-settings/

Verwandte Themen