Comment Déboguer le Projet de API Web Du Projet MVC Dans la Même Solution
VS 2012, je tente de créer un MVC 4 application web avec jQuery, les appels à un projet d'API Web. (D'autres devs sera de consommer de l'API avec notre actuelle, application native, et probablement l'ajout de l'API dans l'avenir.) Donc, j'ai un projet qui est de l'API du Web, et un autre projet qui est le MVC 4 web. Je ne peut définir l'un d'entre eux à exécuter, et ils utiliser localhost:xxxxx.
Comment déboguer des changements à la fois? Par exemple, disons que j'ai ajouter une nouvelle API chemin /api/client/obtenir et ensuite une nouvelle ajax de jQuery appel à ce chemin et de faire quelque chose avec les résultats en JSON. J'ai changé le code, dans les deux projets et que vous voulez le suivre de bout en bout; comment puis-je lancer les deux? Comment corriger les deux à la fois?
Juste pour être clair, le MVC application n'est pas à côté serveur, les appels à l'API, je suis en utilisant MVC pour la plupart être en mesure d'utiliser facilement le regroupement, minification, et (espérons-le) pré-compilé Guidon modèles dans .NET; les appels d'API sont à venir à partir de jQuery. Comme je suis encore relativement nouveau à ces technologies, de l'alternance des suggestions sont les bienvenues.
Vous en remercie d'avance.
- Vous pouvez cliquer droit sur la solution dans l'Explorateur de solutions et choisissez "Définir les Projets de Démarrage...", puis sélectionnez "Démarrage Plusieurs Projets" et quand vous le débogage, vous pouvez frapper les points d'arrêt dans tous les projets qui ont une action "Start".
- Qui fonctionne, merci. Mais il est exposé à un autre problème que dans chaque projet est attaché à un autre localhost numéro de port, en effet ce qui les rend différents sites web (sites web et noms de domaines?). Le plan est de le déployer sur le même site, mais l'API routes commencent tous par " /api/'. Comme il est, comment puis-je faire mon jQuery, les appels de référence le domaine correct lorsque le débogage? Je ne veux certainement pas à remplacer l'URL en mode Debug, et puis il me semble que je suis l'obtention de la croix-domaine des problèmes d'accès. Cela fait-il sens?
- Si vous souhaitez héberger à la fois sous le même site, pourquoi ne pas combiner les deux projets en un seul?
- on dirait que vous êtes de codage en dur vos Url dans votre code, ce qui n'est pas une bonne idée. Des trucs comme ça devrait être dans le web.config. Vous pouvez les remplacer avec des transformations basées sur la cible de déploiement de l'environnement.
- Je pense que l'on finira par en les combinant, juste pour rendre les choses plus faciles, mais nous voulions avoir la séparation des préoccupations, si possible, et la capacité de l'API pour le développement et le déploiement séparément à partir du site web.
- Dans nos projets, nous avons les appels d'API séparée dans le modèle de la couche sur le côté client MVC, mais nous n'avons pas utilisé le web.config ou les transforme pour eux. Je vais sur Google, mais pourriez-vous également m'indiquer un tutoriel ou un exemple de ce que vous êtes en train de parler? Je ne l'ai jamais vu faire de cette façon.
- Info ici MSDN. Vous pouvez également utiliser quelque chose comme la
CodeAssassin.ConfigTransform
package nuget pour vous aider. - Comment voulez-vous mettre votre url de l'API dans le web.de configuration et de référence de la côté client? C'est ce que je n'ai jamais vu faire auparavant.
- Rechercher des articles et de l'aide sur
ConfigurationManager
et<applicationSettings>
. Ce n'est pas vraiment dans le champ d'application de cette question.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et a trouvé une solution à partir d'ici:
forums.asp.net
La solution est de faire ce qui suit:
Dans votre fichier de solution, cliquez sur propriétés allez au Démarrage du nœud de projet (si elle n'est pas déjà sélectionné)
Prochaine sélectionner Plusieurs projets de démarrage. Sélectionnez votre site web et votre webservice et dans la colonne Action assurez-vous que les deux d'entre eux ont "Démarrer" sélectionné.
Maintenant, lorsque vous déboguez votre site web et de mettre un point d'arrêt dans votre webservice, il devrait atteindre le point de rupture.
Arrivé en retard à la fête, mais au cas où quelqu'un d'autre est à la recherche d'une solution, c'est ce qui était le mieux pour moi: Définir le projet Api afin d'en faire le projet de départ (j'avais besoin de le limiter à un démarrage afin que je puisse basculer entre les navigateurs plus facilement). Après l'allumage, le projet de service, cliquez à droite sur le web/l'interface et sélectionnez déboguer, démarrer une nouvelle instance. Vous aurez à la fois en cours d'exécution et vous aurez parfaitement étape à partir du web pour l'api.
J'ai eu un problème similaire avec mon projet d'api web. Ma solution a consisté en une angulaires frontal avec 2 api web des projets sur le backend. Un projet d'api web géré "autorisation" et les autres traités de "ressources". J'ai utilisé le tutoriel suivant par Taiseer Joudeh comme un point de départ:
http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/
Points d'arrêt travaillé sur le "serveur d'autorisation"... mais pas sur le "serveur de ressources". J'ai comparé les forfaits à partir de les deux projets, de voir ce qui est différent. Une fois, j'ai ajouté "de Microsoft.AspNet.WebApi.La scro" pour le "serveur de ressources" du projet, les points d'arrêt de commencer le travail.