14
votes

Les processus Visual Studio 2019 ne s'arrêtent pas, problèmes NodeJS

Je travaille sur une nouvelle installation de Windows 10 Pro (10.0.18362) et j'essaie d'obtenir l'installation de Visual Studio 2019 et la configuration pour le développement Web .NET Core 3.1, mais je rencontre plusieurs problèmes.

J'ai créé une application Web ASP.NET Core React.js par défaut et exécuté le projet. Les choses semblaient bien fonctionner, sauf qu'après la mise à jour du code JavaScript, le navigateur se met à jour après une assez longue pause; les choses semblent traîner.

Après avoir fermé Visual Studio 2019 à partir de l'application Web par défaut (aucune mise à jour), plusieurs processus semblent se bloquer et doivent être arrêtés manuellement:

Processus Visual Studio 2019

J'ai essayé d'installer Visual Studio 2019 avec le Node.js fourni par le programme d'installation de Visual Studio, en plus d'installer Node.js V12.4 et V13.6 manuellement avec les mêmes résultats.

Un autre problème: si je mets à jour le projet de JavaScript vers TypeScript à l'aide de npx create-react-app client-app --typescript , les mises à jour à chaud cessent de fonctionner entièrement. Mais après la mise à jour du code JavaScript et l'actualisation du navigateur, les choses semblent se mettre à jour, il semble donc se recompiler. J'ai essayé le débogage dans Firefox et Chrome, les deux avec les mêmes résultats.

Je suis très hésitant à continuer à travailler avec cette installation car j'ai eu plusieurs problèmes lors de ces processus. Si ceux-ci se bloquent de manière inattendue et ne sont pas arrêtés, ils continueront à utiliser les anciennes versions du code et rien de ce qui est fait ne sera mis à jour jusqu'à ce que les processus soient arrêtés, provoquant une folie totale.

Pourrait-il y avoir une procédure d'installation spécifique que je dois effectuer comme solution de contournement? Ou est-ce que je manque peut-être des packages NuGet ou des modules complémentaires? Puisqu'il s'agit d'une nouvelle installation du système d'exploitation, y a-t-il des fonctionnalités Windows que je dois installer? Ou d'autres modifications de configuration / autorisation qui pourraient en être la cause?

Avant cette installation, seuls les projets créés dans Visual Studio 2017 semblaient fonctionner comme prévu. Mais j'ai besoin de développer ce site dans .NET Core 3.0 et il semble que seul Visual Studio 2019 est pris en charge pour cela.

Mise à jour

Après quelques problèmes, il semble que Node soit à l'origine des problèmes. Si j'arrête manuellement les processus Node, Visual Studio s'arrêtera finalement - mais il laisse d'autres processus comme le VSCompiler et les Consoles en cours d'exécution. Cela se produit même si j'exécute Visual Studio en tant qu'administrateur.

Dois-je installer le nœud avant Visual Studio ou vice versa? Dois-je effectuer une configuration avec Visual Studio ou Node pour que les choses fonctionnent correctement?

Mise à jour 2

Après n'avoir trouvé aucun correctif, j'ai essayé une réinstallation complète de Windows, y compris un format de disque, puis installé uniquement Visual Studio et Node.js.

Une chose intéressante que j'ai trouvée en faisant cela: à l'origine, j'ai uniquement installé Visual Studio et sélectionné à la fois le "Développement Web" et le "Développement NodeJS". Mais lorsque j'ai essayé d'exécuter une nouvelle application Web .NET Core sans aucune modification, j'ai reçu une erreur indiquant que Node.js n'était pas installé, même si j'ai pu trouver un node.exe dans le dossier MsBuilds sous Visual Studio.

J'ai complètement désinstallé Visual Studio et tous les autres composants, installé Node.js, puis Visual Studio, mais le problème persiste. Chaque fois que j'essaye d'exécuter n'importe quel type de JavaScript en utilisant les modèles SPA, les processus Node.js ne s'arrêtent pas. Si je tue le processus Node.js, Visual Studio s'arrêtera finalement, mais il laisse l' Console Window Host la Console Window Host et VBCSCompiler cours d'exécution, qui doivent être fermés manuellement.

J'ai également essayé de créer une nouvelle application Web .NET Core, sauf cette fois en sélectionnant le modèle angulaire et cela fonctionne mieux: le rechargement à chaud fonctionne et semble fonctionner beaucoup plus rapidement. Mais les processus ne s'arrêtent toujours pas. La seule différence est que la suppression des processus Node.js ne permet pas à Visual Studio de s'arrêter.

Mise à jour 3

Je ne sais pas non plus si cela aide, mais j'ai essayé de définir les propriétés de node.exe sur "Exécuter ce programme en tant qu'administrateur" pour voir s'il s'agit d'un problème d'autorisation. Cela a donné les mêmes résultats. J'ai cependant remarqué que deux fenêtres apparaîtront: d'abord une fenêtre vide, puis la fenêtre du serveur Angular.

Je ne sais pas si c'est lié, mais quand j'ai essayé d'exécuter à nouveau l'application Angular, il semble qu'Angular pointe vers un autre port (aléatoire) que celui défini dans les paramètres de débogage du projet.

Une chose que j'ai remarquée est que les messages habituels du serveur ne s'affichent pas dans la fenêtre de sortie. Il avait l'habitude d'afficher les messages node.js tels que "le serveur est en cours d'exécution" et d'autres messages du compilateur, mais il n'affiche plus que la sortie .NET.

Mise à jour 4

En me rapprochant, j'ai désinstallé Visual Studio et Node.js, puis je me suis assuré de nettoyer tous les dossiers Visual Studio et node_modules de mes répertoires AppData et User/Local , puis j'ai effectué un nettoyage de disque. Enfin, j'ai réinstallé Visual Studio - en veillant à exécuter le programme d'installation en tant qu'administrateur - et réinstallé Node.js.

J'ai exécuté Visual Studio en tant qu'administrateur et créé une nouvelle application angulaire. Maintenant, l'application Angular fonctionne comme prévu, HMR fonctionne et les choses semblent se dérouler correctement, sauf que les processus se bloquent toujours. La principale différence est que tuer le processus Microsoft Visual Studio 2019 tue tout, alors qu'avant, il laissait le VBSCCompiler , Node.js et les consoles en cours d'exécution.

Lors de la création d'une application React, les choses se chargent correctement. Mais, encore une fois, le HMR ne fonctionne pas et laisse également les processus en cours d'exécution. l'arrêt du processus principal de Visual Studio semble également les nettoyer maintenant.


6 commentaires

Un antivirus peut-il interférer?


@IanKemp Non, j'ai fait une réinstallation complète incluant un format et j'ai réessayé sans installer aucun autre logiciel autre que VisualStudio 2019 et Node.js mêmes résultats


Je suggérerais d'ouvrir un dossier de support avec Microsoft en utilisant l'outil de commentaires intégré à Visual Studio.


@IanKemp je l'ai déjà fait, en attendant une réponse


Je reçois un problème similaire mais j'ai remarqué qu'il n'est pas lié à Visual Studio 2019 mais plutôt à la version de .net core que je cible: le rechargement en direct fonctionne dans VS2019 avec .netcore 2.1 et les versions Angular 5.2.0 / 8 / 9.1 Le rechargement en direct échoue dans VS2019 avec .netcore 3.1 et Angular 8 / 9.1 Testé à la fois dans Chrome et IE Il me reste également de nombreux processus en cours d'exécution comme Node.js après la fermeture de Visual Studio


J'ai le même problème avec une application de modèle de réaction dans Visual Studio Code. C'est dommage qu'ils aient fermé le dossier d'assistance que vous avez ouvert en raison de la low priority .


4 Réponses :


10
votes

J'ai peur de ne pas avoir de solution, mais si quelqu'un veut un moyen rapide de tuer tous les processus de nœuds errants et d'accélérer la sauvegarde, ils peuvent s'exécuter:

taskkill /IM "node.exe" /F

Je n'ai eu aucun problème à exécuter cela pendant que VS fonctionne.

entrez la description de l'image ici


2 commentaires

Je vais juste ajouter ceci à mon processus de construction. VS2019 me bloque souvent jusqu'à ce que je tue ça.


Un problème avec cette méthode, elle ne tue que les processus de nœud et n'arrête pas le VBCSCompiler.exe ce qui empêchera le VBCSCompiler.exe des modifications jusqu'à ce qu'il s'arrête, et ne tue aucun des processus conhost.exe qui sont également associé aux processus de nœud. Connaissez-vous un moyen de tuer les processus associés qui sont générés à partir de VS?



0
votes

J'ai eu le même problème avec React SPA, cela a fonctionné pour moi:

Outils -> Options -> Débogage -> Général -> Activer le débogage JavaScript pour ASP.NET (Chrome, Edge et IE) (Visual Studio 2017 et 2019) <- décoché

également la liste déroulante à côté du bouton de lecture:

Débogage de script -> désactivé


0 commentaires

0
votes

Dans Visual Studio 2019, accédez à Outils, Options, Débogage, Général et vers le bas, il y a une case à cocher pour Fermer automatiquement la console lorsque le débogage s'arrête. Il n'est pas coché par défaut sur les nouvelles versions de VS et si vous regardez les propriétés de votre projet ASP.NET Core, vous verrez qu'il s'agit d'un projet de console. Donc, sans la case cochée, la console ne se ferme pas automatiquement.

Le problème est qu'il s'agit d'une console cachée, vous ne pouvez donc pas la voir pour l'arrêter manuellement. Si vous cochez la case pour fermer automatiquement la console, les consoles et node.js s'arrêteront de fonctionner chaque fois que vous arrêterez le débogueur. Également dans Options, il existe une zone Outils Node.Js que vous voudrez peut-être également consulter. Il a une case à cocher pour Attendre l'entrée lorsque le processus se termine anormalement. Si la console est masquée, il n'y a aucun moyen pour vous de faire des entrées afin que cela puisse également maintenir le processus ouvert.

Une autre option, si vous ne souhaitez modifier aucune des options de débogage, consiste à accéder aux propriétés de votre projet> Déboguer et à modifier les paramètres de lancement du profil IIS Express sur Projet au lieu d'IIS Express. Cela rendra la console / l'invite de commande visible et lorsque vous avez terminé le débogage, vous pouvez Ctrl-C pour arrêter le débogueur ou lorsque vous appuyez sur Arrêter, la console vous donnera le message Appuyez sur n'importe quelle touche pour fermer cette fenêtre. . .


1 commentaires

solution dans le premier paragraphe n'a pas aidé :(



0
votes

Ce problème doit être résolu dans ASP.NET Core 5.0, essayez la mise à niveau si possible.


2 commentaires

C'était mon espoir, mais il semble que ce soit toujours un problème avec .NET 5 et Visual Studio V16.8.2. Je viens de créer un nouveau projet par défaut, de l'exécuter et de l'arrêter et ces processus embêtants étaient toujours en cours d'exécution


Ensuite, il devrait être signalé sur github.com/dotnet/aspnetcore