J'essaie de créer une toute nouvelle application Web ASP.NET Core dans Visual Studio 2019 avec un modèle angulaire ciblant ASP.NET Core 3.1.

Pendant que l'application fonctionne, le rechargement en direct ne fonctionnera qu'une ou deux fois avant de s'arrêter, puis il cessera de fonctionner, que vous apportiez des modifications aux fichiers .ts ou aux fichiers .html. La fermeture de Visual Studio, puis l'utilisation du gestionnaire de tâches pour arrêter les instances de Node.js le font parfois fonctionner à nouveau, mais si vous avez de la chance, il ne rechargera en direct qu'une ou deux fois avant de se briser à nouveau.

Je peux dire que l'Angular CLI recompile mon code chaque fois que j'enregistre des modifications, car tout ce que j'ai à faire est de cliquer sur la barre d'adresse de mon navigateur et d'appuyer sur Entrée pour voir mes modifications se refléter. Cela semble donc être principalement un échec en essayant d'envoyer au navigateur une commande d'actualisation.

Choses que j'ai essayé de réduire ce problème:

  • Mise à niveau de ma version d'Angular dans le dossier ClientApp vers 9.1 ou rétrogradation vers 5.2.0. Dans les deux cas, j'ai toujours le bogue de rechargement en direct. Cela ne semble pas être lié à la version d'Angular utilisée mais plutôt à la version du noyau .net que je cible.

  • Utilisez l'invite de commande pour lancer mon projet Angular (démarrage npm), puis visitez localhost:4200 - dans ce scénario, le rechargement en direct fonctionne chaque fois que j'enregistre une modification dans un fichier dans mon dossier ClientApp - mais j'ai effectivement coupé le noyau .net du boucle ici. Je n'utilise plus ASP.NET Core dans ce scénario pour servir mon SPA angulaire.

  • Utilisez l'invite de commande pour lancer mon projet Angular (npm start), puis modifiez mon Startup.cs de la manière suivante :

    if (env.IsDevelopment())
    {
        //spa.UseAngularCliServer(npmScript: "start");
        spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
    }

Le bug de rechargement Live est toujours présent dans ce scénario

  • Créez une nouvelle application Web ASP.NET Core dans Visual Studio 2019 avec un modèle angulaire, mais ciblez cette fois ASP.NET Core 2.1. Cette fois, le rechargement en direct fonctionne parfaitement, ce qui confirme ma théorie selon laquelle cela a à voir avec la version du noyau .net ciblée. Il échafaude un SPA angulaire 5.2.0, mais vous pouvez l'échanger contre un SPA angulaire 9.1 et le rechargement en direct du navigateur fonctionnera toujours.

Quelqu'un d'autre a-t-il eu ce problème ou trouvé une solution de contournement ? J'aimerais vraiment commencer mon nouveau projet dans .net core 3 mais je crains qu'il ait des problèmes et ne fonctionne pas bien avec Angular pour le moment.

MODIFIER

Je ne sais pas si c'est lié mais ce problème apparaît légèrement différemment dans Internet Explorer. Dans IE, l'ouverture de la console montre à plusieurs reprises les erreurs de script suivantes qui se produisent encore et encore

Invalid Host/Origin header
[WDS] Disconnected!

enter image description here

Ces erreurs de script disparaissent lors de l'utilisation d'un ancien framework Angular (5.2.0), mais le rechargement en direct ne fonctionne toujours pas dans ce cas tant que j'utilise ASP.NET Core 3.1

Il est également possible d'éviter ces erreurs de script en utilisant soit

"disableHostCheck": true (angular.json -> architecte -> servir -> options)

OU "start": "ng serve --configuration es5 --disable-host-check" (package.json)

MAIS cela ne résoudra pas le rechargement en direct dans Internet Explorer

4
Aceofspades25 21 févr. 2020 à 15:25

1 réponse

Meilleure réponse

Il semble que ce bug a été posté ici :

https://github.com/dotnet/aspnetcore/issues/11498

Une solution qui fonctionne a été publiée par l'utilisateur Cito : https://github.com/dotnet/aspnetcore/issues/11498#issuecomment- 566928086

Pour que le rechargement en direct fonctionne, assurez-vous d'activer SSL dans les paramètres de votre serveur Web. Je ne sais pas pourquoi Live Reloading ne fonctionne que dans .NET Core 3.1 sur SSL, mais c'est le cas.

Je serais intéressé de savoir pourquoi cela résout le problème si quelqu'un a des théories

1
Aceofspades25 22 févr. 2020 à 15:56