Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Le port ASP.NET Core par défaut configuré dans les images conteneur .NET a été mis à jour du port 80 vers le port 8080.
Nous avons également ajouté la nouvelle variable d'environnement ASPNETCORE_HTTP_PORTS
comme alternative plus simple à ASPNETCORE_URLS
. La nouvelle variable attend une liste de numéros de ports délimités par des points-virgules, tandis que l'ancienne variable attend une syntaxe plus compliquée.
Les applications créées à l’aide de l’ancienne API WebHost.CreateDefaultBuilder() ne respectent pas la nouvelle variable d’environnement ASPNETCORE_HTTP_PORTS
. Et maintenant que ASPNETCORE_URLS
n’est plus défini automatiquement, l’URL par défaut http://localhost:5000
est utilisée, plutôt que http://*:80
comme précédemment.
Avant .NET 8, vous pouviez exécuter un conteneur qui s’attendait à ce que le port 80 soit le port par défaut et puisse accéder à l’application en cours d’exécution.
Par exemple, vous pouviez exécuter la commande suivante, puis accéder à l’application localement sur le port 8000, qui est mappé au port 80 dans le conteneur :
docker run --rm -it -p 8000:80 <my-app>
À partir de .NET 8, si vous mappez le port 80 dans le conteneur sans définir explicitement le port ASP.NET Core utilisé dans le conteneur sur 80, toute tentative de connexion à ce port mappé échouera.
Par exemple, si vous exécutez la commande suivante, vous ne pourrez pas vous connecter à l'application localement à l'aide du port 8000.
docker run --rm -it -p 8000:80 <my-app>
Modifiez, à la place, la commande pour utiliser le port 8080 dans le conteneur :
docker run --rm -it -p 8000:8080 <my-app>
Vous pouvez voir la différence de comportement dans les exemples suivants.
Port de mappage 80
(cas de panne) :
$ docker run --rm -d -p 8000:80 mcr.microsoft.com/dotnet/samples:aspnetapp
ba88b746bd7097e503f8ab6e5320c595640e242f6de4f734412944a0e2836acc
$ curl http://localhost:8000/Environment
curl: (56) Recv failure: Connection reset by peer
$ docker kill ba88b746bd7097e503f8ab6e5320c595640e242f6de4f734412944a0e2836acc
ba88b746bd7097e503f8ab6e5320c595640e242f6de4f734412944a0e2836acc
Port de cartographie 8080
:
$ docker run --rm -d -p 8000:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
74d866bdaa8a5a09e4a347bba17ced321d77a2524a0853294a123640bcc7f21d
$ curl http://localhost:8000/Environment
{"runtimeVersion":".NET 8.0.0-rc.1.23419.4","osVersion":"Alpine Linux v3.18","osArchitecture":"Arm64","user":"root","processorCount":4,"totalAvailableMemoryBytes":4123820032,"memoryLimit":0,"memoryUsage":30081024,"hostName":"74d866bdaa8a"}
$ docker kill 74d866bdaa8a5a09e4a347bba17ced321d77a2524a0853294a123640bcc7f21d
74d866bdaa8a5a09e4a347bba17ced321d77a2524a0853294a123640bcc7f21d
Port de mappage 80
avec ASPNETCORE_HTTP_PORTS
défini sur le port 80
:
$ docker run --rm -d -p 8000:80 -e ASPNETCORE_HTTP_PORTS=80 mcr.microsoft.com/dotnet/samples:aspnetapp
3cc86b4b3ea1a7303d83171c132b0645d4adf61d80131152936b01661ae82a09
$ curl http://localhost:8000/Environment
{"runtimeVersion":".NET 8.0.0-rc.1.23419.4","osVersion":"Alpine Linux v3.18","osArchitecture":"Arm64","user":"root","processorCount":4,"totalAvailableMemoryBytes":4123820032,"memoryLimit":0,"memoryUsage":95383552,"hostName":"3cc86b4b3ea1"}
$ docker kill 3cc86b4b3ea1a7303d83171c132b0645d4adf61d80131152936b01661ae82a09
3cc86b4b3ea1a7303d83171c132b0645d4adf61d80131152936b01661ae82a09
.NET 8 Préversion 1
Ce changement est un changement de comportement.
La modification du numéro de port a été apportée en raison de la nécessité de fournir une bonne expérience d’utilisation lors de la commutation à un non-root
utilisateur. L’exécution en tant qu’utilisateur non-root
nécessite l’utilisation d’un port non privilégié dans certains environnements. Étant donné que le port 80, le port par défaut précédent, est un port privilégié, la valeur par défaut a été mise à jour vers le port 8080, qui est un port non privilégié.
Il existe deux façons de résoudre ce changement cassant :
ASPNETCORE_HTTP_PORTS
, ASPNETCORE_HTTPS_PORTS
et ASPNETCORE_URLS
sur le port souhaité. Exemple : docker run --rm -it -p 8000:80 -e ASPNETCORE_HTTP_PORTS=80 <my-app>
docker run --rm -it -p 8000:8080 <my-app>
Si votre application a été créée à l’aide de l’ancienne méthode WebHost.CreateDefaultBuilder(), définissez ASPNETCORE_URLS
(et non ASPNETCORE_HTTP_PORTS
). Exemple : docker run --rm -it -p 8000:80 -e ASPNETCORE_URLS=http://*:80 <my-app>
.
Si vous utilisez Kubernetes ou Docker Compose, vous devez modifier le port selon ces schémas. Voir Utilisation de .NET avec Kubernetes pour découvrir des exemples.
Si vous utilisez des services conteneur Azure pour héberger votre application conteneur ASP.NET Core, vous devez mettre à jour votre environnement de conteur pour définir le port souhaité :
WEBSITES_PORT
à l’aide de l’interface CLI ou dans le portail.Aucun.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Parcours d’apprentissage
Créer des applications et des services natifs cloud avec .NET et ASP.NET Core - Training
Créez des applications et des services déployables, hautement évolutifs et résilients indépendamment à l’aide de la plateforme .NET gratuite et open source. Avec .NET, vous pouvez utiliser la technologie de microservice populaire comme Docker, Kubernetes, Dapr, Azure Container Registry, et bien plus encore pour les applications et services .NET et ASP.NET Core.