web-dev-qa-db-fra.com

Comment déboguer un projet d'API Web à partir d'un projet MVC dans la même solution

Dans VS 2012, je tente de créer une application Web MVC 4 avec des appels jQuery vers un projet d'API Web. (D'autres développeurs utiliseront l'API avec notre application native actuelle et l'ajouteront probablement à l'avenir.) J'ai donc un projet, l'API Web, et un autre projet, le site Web MVC 4. Je ne peux configurer qu'un seul d'entre eux, et ils utilisent localhost: xxxxx.

Comment déboguer les modifications des deux? Par exemple, supposons que j'ajoute un nouveau chemin d'accès API/api/customer/get, puis un nouvel appel ajax jQuery à ce chemin et que je fasse quelque chose avec le JSON résultant. J'ai changé de code dans les deux projets et je veux le suivre de bout en bout. comment lancer les deux? Comment déboguer les deux?

Pour être clair, l'application MVC n'effectue pas d'appels côté serveur à l'API. J'utilise principalement MVC pour pouvoir utiliser facilement des modèles de regroupement, de minimisation et (espérons-le) pré-compilés des guidons dans .NET; les appels d'API proviennent de jQuery. Comme je suis encore relativement nouveau dans ces technologies, d’autres suggestions sont les bienvenues.

Merci d'avance.

30
Jammerms

J'ai eu le même problème et j'ai trouvé une solution d'ici:

forums.asp.net

Le correctif consiste à effectuer les opérations suivantes:

Dans votre fichier de solution, cliquez sur les propriétés pour aller au nœud du projet de démarrage (s'il n'est pas déjà sélectionné).

Ensuite, sélectionnez Plusieurs projets de démarrage. Sélectionnez votre site Web et votre service Web et, dans la colonne Action, assurez-vous que la case "Démarrer" est sélectionnée.

Maintenant, lorsque vous déboguez votre site Web et mettez un point d'arrêt dans votre service Web, il devrait atteindre le point d'arrêt.

68
John Lucas

Arriver en retard à la soirée mais si quelqu'un d'autre cherche une solution, voici ce qui me convenait le mieux: Définissez le projet Api comme projet de départ (je devais me limiter à un démarrage pour pouvoir basculer davantage entre les navigateurs facilement). Après avoir lancé le projet de service, cliquez avec le bouton droit de la souris sur le projet Web/Interface utilisateur et sélectionnez Débogage, puis démarrez une nouvelle instance. Vous aurez les deux en cours d'exécution et vous passerez de manière transparente du Web à l'API. 

0
Ron

J'ai eu un problème similaire avec mon projet web api. Ma solution consistait en une extrémité avant angulaire avec 2 projets d’API Web sur le backend. Un projet d’API Web traitait «autorisation» et l’autre traitait «ressources». J'ai utilisé le tutoriel suivant de Taiseer Joudeh comme point de départ:

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

Les points d'arrêt fonctionnaient sur le "serveur d'autorisation" ... mais pas sur le "serveur de ressources". J'ai comparé les packages des deux projets pour voir ce qui était différent. Une fois que j'ai ajouté "Microsoft.AspNet.WebApi.Cors" au projet "Serveur de ressources", les points d'arrêt ont commencé à fonctionner. 

0
MichaelBarce