Az alapértelmezett ASP.NET Core-port 80-ról 8080-ra módosult
A .NET-tárolólemezképekben konfigurált alapértelmezett ASP.NET Core-port a 80-ról a 8080-ra frissült.
Az új ASPNETCORE_HTTP_PORTS
környezeti változót is hozzáadtuk egyszerűbb alternatívaként.ASPNETCORE_URLS
Az új változó pontosvesszővel tagolt portszámlistát vár, míg a régebbi változó bonyolultabb szintaxist vár.
A régebbi WebHost.CreateDefaultBuilder() API-val készült alkalmazások nem fogják tiszteletben tartani az új ASPNETCORE_HTTP_PORTS
környezeti változót. És most, hogy ASPNETCORE_URLS
már nincs automatikusan beállítva, a korábbiakhoz http://*:80
hasonlóan az alapértelmezett URL-cím http://localhost:5000
használatára váltanak.
Előző viselkedés
A .NET 8 előtt futtathat egy tárolót, amely azt várta, hogy a 80-as port legyen az alapértelmezett port, és hozzáférhessen a futó alkalmazáshoz.
Futtathatja például a következő parancsot, majd helyileg elérheti az alkalmazást a 8000-s porton, amely a tároló 80-s portjához van leképezve:
docker run --rm -it -p 8000:80 <my-app>
Új viselkedés
A .NET 8-tól kezdve, ha a tároló 80-ai portra van megfeleltetve anélkül, hogy a tárolóban használt ASP.NET Core-portot 80-ra állítja, a megfeleltetett porthoz való kapcsolódási kísérletek sikertelenek lesznek.
Ha például a következő parancsot futtatja, nem tud helyileg csatlakozni az alkalmazáshoz a 8000-s port használatával.
docker run --rm -it -p 8000:80 <my-app>
Ehelyett módosítsa a parancsot úgy, hogy a tárolóban a 8080-at használja:
docker run --rm -it -p 8000:8080 <my-app>
A viselkedésbeli különbségeket az alábbi példákban tekintheti meg.
Leképezési port 80
(hibaeset):
$ 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
Leképezési port 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
80
ASPNETCORE_HTTP_PORTS
Port leképezése portra 80
állítva:
$ 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
Bevezetett verzió
.NET 8 előzetes verzió 1
A módosítás típusa
Ez a változás viselkedésbeli változás.
A változás oka
A portszám módosítása azért történt, mert jó használhatósági élményt kell nyújtania a non-root
felhasználóra való váltáskor. A felhasználóként non-root
való futtatáshoz nem emelt szintű portot kell használni bizonyos környezetekben. Mivel a 80-as port, az előző alapértelmezett port egy emelt szintű port, az alapértelmezett port a 8080-as portra lett frissítve, amely nem emelt jogosultságú port.
Javasolt művelet
A kompatibilitástörő változásra kétféleképpen lehet reagálni:
- (Ajánlott művelet) Explicit módon állítsa be a
ASPNETCORE_HTTP_PORTS
,ASPNETCORE_HTTPS_PORTS
ésASPNETCORE_URLS
környezeti változókat a kívánt portra. Példa:docker run --rm -it -p 8000:80 -e ASPNETCORE_HTTP_PORTS=80 <my-app>
- Frissítse a meglévő parancsokat és konfigurációt, amelyek a 80-as port várt alapértelmezett portjára támaszkodnak, és ehelyett a 8080-ra hivatkoznak. Példa:
docker run --rm -it -p 8000:8080 <my-app>
Ha az alkalmazás a régebbi WebHost.CreateDefaultBuilder() módszerrel készült, állítsa be ASPNETCORE_URLS
(nem ASPNETCORE_HTTP_PORTS
). Példa: docker run --rm -it -p 8000:80 -e ASPNETCORE_URLS=http://*:80 <my-app>
Ha Kubernetes-t vagy Docker Compose-t használ, módosítania kell a portot ezeken a sémákon belül. Példák : A .NET használata a Kubernetes használatával.
Ha azure-tárolószolgáltatásokat használ a ASP.NET Core-tárolóalkalmazás üzemeltetéséhez, frissítenie kell a tárolókörnyezetet a kívánt port beállításához:
- A Azure-alkalmazás szolgáltatáshoz állítsa be
WEBSITES_PORT
a parancssori felület vagy a portál használatával. - Az Azure Container Apps esetében az erőforrás-létrehozás részeként módosíthatja a portot.
- Az Azure Container Instances esetében az erőforrás-létrehozás részeként módosíthatja a portot.
Érintett API-k
Nincs.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: