Kaksi päivää sitten julkaisin uudelleen .NET-ydinkäynnistysanalyysin, koska olin jumissa oletus 5000-portissa julkaisun aikaan, joten tutkin sitä huolellisesti.
1. IIS-integraatio
Jos käytät IIS:ää isäntänä, nämä eivät ole ongelma, tehokas IIS voi auttaa meitä konfiguroimaan sivuston verkkotunnuksen, portin jne. Mitä tulee siihen, miten asp.net ydinverkkosovellus otetaan käyttöön IIS:llä, se ei ole tässä pointti. Kuvaile sitä karkeasti:
Sinun täytyy ladata Net Core SDK ja Server Hosting, ja latausosoite on https://www.microsoft.com/net/download
Asennuksen jälkeen tarkista, onko .NET Core SDK asennettu onnistuneesti komentorivillä dotnet info -tiedostoon
Alla on esitetty, onko palvelimen isäntä onnistuneesti asennettu IIS-moduuliin ja käsittelijän kartoitus
Sitten aseta sivusto ja määrittele tiedostot julkaisusivustolle
Lopuksi ohjelmapooli tulisi konfiguroida ja valita hallitsematon, jotta palvelimen isäntävälityspyyntö on olemassa.
2. Linux-ympäristö
Puhumattakaan erityisestä asennuksesta, niitä on myös paljon. Virallisen verkkosivuston ohjeiden mukaan asenna .NET Core -käyttöympäristö ja se voi käynnistyä.
Tässä on suositeltu blogikirjoitus omaksi viitteeksi: ASP.NET Core -sovellusten käyttöönotto tuotantoon (CentOS7)
Takaisin pääasiaan, miten määrittää URL- ja porttiparametrit
1. Määrittele ohjelman päämenetelmässä
Tämä lähestymistapa on joustamaton eikä kovin elegantti, vaikka se luettaisiin lisäämällä konfiguraatiotiedosto. Tuolloin tunsin, ettei Microsoft ehdottomasti suosittelisi tällaista käyttöä, joten jatkoin sen etsimistä.
2. Välitä ympäristömuuttuja
Näin internetissä artikkelin, jossa käsiteltiin Kuinka konfiguroida Kestrel-URL-osoitteet ASP.NET Core RC2:ssa,
Vaikka se on edelleen konfiguroitu konfiguraatiotiedoston kautta, sen ei tarvitse lukea konfiguraatiotietoja muihin artikkeleihin, ja sitä voi käyttää suoraan sitomalla tai liittämällä koodin nähdäksesi:
hosting.json
Program.cs
Näin se voi myös kuunnella
Nyt kuuntelen: http://localhost:60000
Kuuntelen nyt: http://localhost:60001
Eikö olekin uskomatonta! En kestä varsinaista taistelua, vähennä lähdekoodi! Ehdottomasti paras asia .NET Coressa on, että siinä on lähdekoodi!
Lähdettämällä voimme tietää, että kyseessä on pääasiassa WebHostBuilder-luokka, Microsoft.AspNetCore.Hosting-nimiavaruuden alla.
Päämenetelmä on Build
Pääpaino on rakentaa WebHost-objekti ja katsoa sitten pidemmälle
Tarkastelemalla lähdekoodia Initialize-metodin kautta voimme tietää EnsureServer-menetelmällä luodun URL-osoitteen
Tässä näemme, että se lukee _config[WebHostDefaults.ServerUrlsKey] ja _config[DeprecatedServerUrlsKey] konfiguraatiosta.
WebHostDefaults.ServerUrlsKey:n arvo on kiinteä arvo
DeprecatedServerUrlsKeyn arvo määritellään WebHost-objektin alussa
Oi! Totuus paljastuu. Voimme siis asettaa "server.urls" konfiguraatiotiedostoon.
Yhteenveto:
Yhteenvetona, asp.net ydin lukee ympäristömuuttujan konfiguroinnin käynnistyessään, ja varsinainen tarkoitus on lisätä seuraava konfiguraatio projektin ominaisuuksiin:
Se on käynnistetty konsolitilassa ja portti on vaihdettu.
Eli tämä on kehitysympäristö, miten se otetaan käyttöön tuotantolinjalla? Tämä on myös hyvin yksinkertaista, otetaan esimerkiksi Linux-käyttöönotto: daemon-valvojan avulla ohjelman käynnistäminen lisää ympäristömuuttujia valvojan käynnistyskonfiguraatioon:
Menesty loistavasti! Yhtäkään koodiriviä ei tarvitse muuttaa, haha~ |