För två dagar sedan skrev jag ut en .NET-core-startanalys igen, eftersom jag fastnade i standardporten 5000 när den släpptes, så jag studerade den noggrant.
1. IIS-integration
Om du använder IIS som värd är dessa inte ett problem, kraftfullt IIS kan hjälpa oss att konfigurera domännamn, port osv. på sidan. När det gäller hur man distribuerar en asp.net kärnwebbapplikation på IIS är det inte poängen här. Beskriv det ungefär:
Du behöver ladda ner Net Core SDK och Server Hosting, och nedladdningsadressen är https://www.microsoft.com/net/download
Efter installationen, kontrollera om .NET Core SDK är installerat framgångsrikt på kommandoradens dotnet-info
Om servervärden är framgångsrikt installerad i IIS-modulen och hanterarmappningen visas nedan
Sedan sätter du upp sidan och specificerar filerna till publiceringssidan
Slutligen bör programpoolen konfigureras och väljas ohanterad, så att det finns en server host forwarding-begäran.
2. Linux-miljö
För att inte tala om den specifika installationen, det finns också många av dem. Enligt instruktionerna på den officiella webbplatsen, det vill säga installera .NET Core-miljön så kan den köras.
Här är ett rekommenderat blogginlägg för din egen referens: Att distribuera ASP.NET kärnapplikationer till produktion (CentOS7)
Tillbaka till huvudpoängen, hur man konfigurerar URL- och portparametrar
1. Specificera i huvudmetoden för programmet
Detta tillvägagångssätt är oflexibelt och inte lika elegant även om det läses genom att lägga till en konfigurationsfil. Vid den här tiden kände jag att Microsoft definitivt inte skulle rekommendera en sådan användning, så jag fortsatte att leta efter den.
2. Skicka miljövariabeln
Jag såg en artikel på Internet om hur man konfigurerar Kestrel-URL:er i ASP.NET Core RC2,
Även om den fortfarande konfigureras via konfigurationsfilen behöver den inte läsa upp konfigurationsinformationen till andra artiklar, och den kan användas direkt genom att binda eller klistra in koden för att se:
hosting.json
Program.cs
På så sätt kan den också lyssna
Nu lyssnar vi vidare: http://localhost:60000
Nu lyssnar vi vidare: http://localhost:60001
Visst är det fantastiskt! Jag står inte ut med själva striderna, dra av källkoden! Det bästa med .NET Core är utan tvekan att det har källkod!
Genom att använda källor kan vi veta att det främst är WebHostBuilder-klassen, under namnrymden Microsoft.AspNetCore.Hosting.
Huvudmetoden är Bygg
Huvudfokus här är att bygga ett WebHost-objekt och sedan titta vidare
Genom att titta på källkoden via Initialize-metoden kan vi känna till URL-adressen som skapats av EnsureServer-metoden
Här kan vi se att den läser _config[WebHostDefaults.ServerUrlsKey] och _config[DeprecatedServerUrlsKey] från konfigurationen.
Värdet för WebHostDefaults.ServerUrlsKey är ett fast värde
Värdet DeprecatedServerUrlsKey definieras i början av WebHost-objektet
Åh! Sanningen avslöjas. Så vi kan ställa in "server.urls" i konfigurationsfilen.
Sammanfattning:
Sammanfattningsvis kommer asp.net kärna att läsa konfigurationen i miljövariabeln när den startar, och det faktiska syftet är att lägga till följande konfiguration i projektets egenskaper:
Den har startats i konsolläge och upptäckt att porten har bytts.
Så detta är en utvecklingsmiljö, hur implementerar man den på produktionslinjen? Detta är också mycket enkelt, med Linux-utrullning som exempel, med hjälp av daemon supervisor för att starta programmet, lägg till miljövariabler i supervisorns startkonfiguration:
Lyckas med bravur! Inte en enda rad kod behöver ändras, haha~ |