it-swarm.com.de

Debuggen eines Web-API-Projekts von einem MVC-Projekt in derselben Lösung

In VS 2012 versuche ich, eine MVC 4-Webanwendung mit jQuery-Aufrufen für ein Web-API-Projekt zu erstellen. (Andere Entwickler werden die API mit unserer aktuellen, nativen App verwenden und wahrscheinlich in der Zukunft zur API hinzufügen.) Ich habe also ein Projekt, das Web-API, und ein anderes Projekt, die MVC 4-Website. Ich kann nur einen von ihnen so einstellen, dass er ausgeführt wird, und sie verwenden localhost: xxxxx.

Wie debugge ich Änderungen an beiden? Nehmen wir beispielsweise an, ich füge einen neuen API-Pfad/api/customer/get hinzu und dann einen neuen jQuery-ajax-Aufruf für diesen Pfad und tue etwas mit dem resultierenden JSON. Ich habe den Code in beiden Projekten geändert und möchte End-to-End folgen. Wie starte ich beides? Wie kann ich beides debuggen?

Um es klar zu sagen, die MVC-App ruft keine serverseitigen Aufrufe der API auf. Ich verwende MVC hauptsächlich, um Bündelungen, Minifikationen und (hoffentlich) vorkompilierte Handlebars-Vorlagen in .NET verwenden zu können. Die API-Aufrufe stammen von jQuery. Da ich bei diesen Technologien noch relativ neu bin, sind alternative Vorschläge willkommen.

Danke im Voraus.

30
Jammerms

Ich hatte das gleiche Problem und habe von hier eine Lösung gefunden:

forums.asp.net

Die Lösung besteht darin, Folgendes zu tun:

Klicken Sie in Ihrer Lösungsdatei auf Eigenschaften, und wechseln Sie zum Startprojektknoten (falls noch nicht ausgewählt).

Wählen Sie anschließend Mehrere Startprojekte aus. Wählen Sie Ihre Website und Ihren Webservice aus und stellen Sie in der Spalte Aktion sicher, dass für beide "Start" ausgewählt wurde.

Wenn Sie nun Ihre Website debuggen und einen Haltepunkt in Ihren Webservice einfügen, sollte dieser Punkt den Haltepunkt erreichen.

68
John Lucas

Wenn ich zu spät auf die Party komme, aber für den Fall, dass jemand nach einer Lösung sucht, war das für mich das Beste: Legen Sie das Api-Projekt als Startprojekt fest (ich musste mich auf einen Start beschränken, damit ich mehr zwischen den Browsern wechseln kann leicht). Nachdem Sie das Serviceprojekt gestartet haben, klicken Sie mit der rechten Maustaste auf das Web-/UI-Projekt, und wählen Sie Debug aus. Starten Sie die neue Instanz. Sie müssen beide ausführen und nahtlos von Web zu API wechseln. 

0
Ron

Ich hatte ein ähnliches Problem mit meinem Web-API-Projekt. Meine Lösung bestand aus einem winkligen Frontend mit zwei Web-API-Projekten im Backend. Ein Web-API-Projekt hat "Autorisierung" und das andere "Ressourcen" gehandhabt. Ich habe das folgende Tutorial von Taiseer Joudeh als Ausgangspunkt genommen:

http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/

Haltepunkte funktionierten auf dem "Autorisierungsserver" ... aber nicht auf dem "Ressourcenserver". Ich habe die Pakete aus den beiden Projekten verglichen, um zu sehen, was anders war. Sobald ich "Microsoft.AspNet.WebApi.Cors" zum Projekt "Ressourcenserver" hinzugefügt habe, funktionieren die Haltepunkte. 

0
MichaelBarce