For to dage siden genudskrev jeg en .NET core-startupanalyse, fordi jeg var viklet ind i standard 5000-porten, da den blev udgivet, så jeg studerede den grundigt.
1. IIS-integration
Hvis du bruger IIS som vært, er disse ikke et problem, kraftfuldt IIS kan hjælpe os med at konfigurere domænenavn, port osv. på siden. Hvad angår hvordan man deployerer en asp.net kerne-webapplikation på IIS, er det ikke pointen her. Beskriv det groft sådan:
Du skal downloade Net Core SDK og Server Hosting, og downloadadressen er https://www.microsoft.com/net/download
Efter installationen skal du tjekke, om .NET Core SDK'en er installeret korrekt på kommandolinjen dotnet-info
Om serverværten er vellykket installeret i IIS-modulet og handler-mapping, vises nedenfor
Opsæt derefter siden og angiv filerne til udgivelsessiden
Endelig bør programpuljen konfigureres og vælges uadministreret, så der er en serverhost-videresendelsesanmodning.
2. Linux-miljø
For ikke at nævne den specifikke installation, der er også mange af dem. Ifølge instruktionerne på den officielle hjemmeside, altså installer .NET Core-kørende miljøet, og det kan køre.
Her er et anbefalet blogindlæg til din egen reference: Udrulning ASP.NET Core-applikationer til produktion (CentOS7)
Tilbage til hovedpunktet, hvordan man konfigurerer URL- og portparametre
1. Angiv i hovedmetoden for programmet
Denne tilgang er ufleksibel og ikke så elegant, selv hvis den læses ved at tilføje en konfigurationsfil. På dette tidspunkt følte jeg, at Microsoft bestemt ikke ville anbefale sådan en anvendelse, så jeg fortsatte med at lede efter det.
2. Send miljøvariablen
Jeg så en artikel på internettet om, hvordan man konfigurerer Kestrel-URL'er i ASP.NET Core RC2,
Selvom den stadig konfigureres via konfigurationsfilen, behøver den ikke at læse konfigurationsinformationen op til andre artikler, og den kan bruges direkte ved binding eller indsætte koden for at se:
hosting.json
Program.cs
På den måde kan den også lytte
Nu lytter vi videre: http://localhost:60000
Nu lytter vi videre: http://localhost:60001
Er det ikke fantastisk! Jeg kan ikke holde ud at kæmpe selv, fradrag kildekoden! Det bedste ved .NET Core er uden tvivl, at det har kildekode!
Ved at kilde kan vi vide, at det hovedsageligt er WebHostBuilder-klassen under navneområdet Microsoft.AspNetCore.Hosting.
Hovedmetoden er Byg
Hovedfokus her er at bygge et WebHost-objekt og derefter kigge nærmere
Ved at se på kildekoden via Initialize-metoden kan vi kende URL-adressen, der er oprettet af EnsureServer-metoden
Her kan vi se, at den læser _config[WebHostDefaults.ServerUrlsKey] og _config[DeprecatedServerUrlsKey] fra konfigurationen.
Værdien af WebHostDefaults.ServerUrlsKey er en fast værdi
Værdien af DeprecatedServerUrlsKey defineres i begyndelsen af WebHost-objektet
Åh! Sandheden bliver afsløret. Så vi kan sætte "server.urls" i konfigurationsfilen.
Resumé:
For at opsummere vil asp.net kerne læse konfigurationen i miljøvariablen, når den starter, og det egentlige formål er at tilføje følgende konfiguration til projektets egenskaber:
Den er startet i konsoltilstand og har fundet ud af, at porten er blevet skiftet.
Så dette er et udviklingsmiljø, hvordan implementerer man det på produktionslinjen? Dette er også meget enkelt, tag Linux-udrulning som eksempel, brug daemon-supervisoren til at starte programmet, tilføj miljøvariabler til supervisorens opstartskonfiguration:
Lykkes med glans! Ikke en eneste kodelinje behøver at blive ændret, haha~ |