0

ConfigurationDébogage multiples applications ASPNET de base simultanément dans Visual Studio

Nous avons une solution VS 2017 avec 2 ASPNET Core 2.0 projets:

Projet 1: webui - un projet d'interface utilisateur basée sur Vue avec Tapuscrit que contient le frontend de l'application

projet 2: WebAPI - un projet WebAPI qui contient toute la mise en œuvre de api

le déploiement productif sous IIS recherche l ike ceci:

enter image description here

Les points Chemin physique Web à un dossier vide. WebApi pointe vers le dossier où le projet WebApi VS est publié. Le WebUi pointe vers le dossier où le projet VS WebUi est publié. Cela fonctionne bien: WebApi est accessible sous/webapi et le WebUi est accessible sous/webui. Cette configuration signifie également que nous n'avons pas besoin de gérer les requêtes CORS, car les deux projets s'exécutent sous le même domaine.

Ce que nous essayons de réaliser

Maintenant, nous essayons de définir une configuration dans VS 2017 qui permettra le débogage facile des deux projets en même temps. Ce que nous avons jusqu'ici est de publier les projets en mode débogage puis de les attacher aux exécutables d'hébergement. Cela fonctionne bien. Le problème est que pour chaque modification du code, une autre publication est nécessaire pour déboguer le nouveau code. Cela prend trop de temps. Il vaudrait mieux simplement appuyer sur F5 dans VS pour lancer les deux applications sous le même hôte (comme l'installation IIS) en mode débogage et pouvoir déboguer les deux projets en même temps. Un projet à la fois fonctionne, mais pas les deux.

Nous avons essayé de placer la AppUrl des deux projets dans les propriétés de débogage à la même URL, mais avec un autre chemin:

webui du projet:

enter image description here

projet WebAPI:

enter image description here

Malheureusement, cela n'a pas fonctionné.

Comment pouvons-nous configurer notre projet de telle sorte qu'il existe une solution facile pour déboguer les deux projets en même temps?

Répondre

0

Je ne crois pas que ce soit possible. De mon expérience, vous ne pouvez attacher le débogueur à un seul projet sous une solution. Personnellement, je fusionnerais les deux projets, avec la section API dans une zone API. Une autre solution consiste à déplacer les deux projets dans leurs propres solutions, puis vous devrez ouvrir deux instances Visual Studio pour exécuter le site.

Mise en place d'une zone d'Api au sein du projet Ui Startup.cs, Configurer la méthode

 app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "areaRoute", 
       template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 

Créer une structure de dossier Domaines> Api> Controller. Ensuite, mettez tous vos contrôleurs API dans le dossier.Ensuite, ajoutez zone et de route Attributs à tous Avec cet ensemble de contrôleurs Api

[Area("WebApi")] 
[Route("[area]/[Controller]")] 

le projet Ui sur/et le api résidera dans/WebAPI. Toute la solution aura un projet, un site IIS, et VS sera capable de déboguer tout en même temps. Si vous souhaitez que l'interface utilisateur réside sur/WebUi, mettez à jour votre plan de routage principal ou créez un autre dossier dans Zones.

+0

C'est possible et cela fonctionne maintenant pour nous, mais seulement si nous publions les deux projets et que nous les attachons ensuite manuellement aux processus qui exécutent les deux applications. Le seul problème est que c'est un processus long et encombrant et que nous aimerions qu'il soit simplifié. –

+0

Donc vous déboguez d'IIS pas Visual Studio, correct? –

+0

Les applications sont hébergées dans IIS. Je joins le débogueur deux fois de VS à chacune des applications. –

0

Si vous voulez déboguer les projets de déploiement, je pense que la seule option est d'attacher le débogueur deux fois de VS à chaque application.

Nous développons généralement un projet en exécutant un projet sous IIS en changeant Propriétés du projet-> Web-> Serveurs-> Local IIS-> Créer un répertoire virtuel pour les deux projets, puis il fonctionnera sous IIS lors du débogage.

Pour exécuter les deux projets, vous pouvez suivre les propriétés de la solution-> Projet de démarrage-> Projets de démarrage multiples-> Définir l'action de démarrage pour eux-> F5, VS exécutera les deux projets.

Ainsi, vous pourriez suivre les étapes ci-dessus pour republier vos projets, alors vous pourrez déboguer pour les deux projets, ou, vous pourriez seulement utiliser pour le développement et le test, vous pourriez les publier s'il n'y a aucun problème.

+0

@Copil tembel, Qu'en est-il de ce problème? Pourriez-vous obtenir des informations utiles? –