Kuinka Asp.Net Core Hosting -mallia käytetään Web-sovelluksissa?

Asp.net-ytimessä on merkittävä parannus hosting-malliin. Aikaisemmissa versioissa odotettiin ylläpitävän Asp.net Core -verkkosovelluksia välityspalvelimien, kuten IIS, Windows, Apache tai NGINX kautta. Uusi Asp.net-ydin 2.2 mahdollistaa kuitenkin Asp.net-sovelluksen isännöinnin suoraan Windowsissa IIS: ssä ilman ulkoisen palvelimen vaatimuksia. Siten tämä lisää suorituskykyä käyttämällä yksinkertaista prosessin sisäistä hosting-mekanismia.

Isäntämallit ASP.NET-ytimessä

ASP.NET on Microsoftin tekniikka, jonka avulla voit luoda dynaamisia sivuja verkkopalvelimen puolella.

Hosting ASP.NET on täysin integroitu Windows -pohjaiseen ohjelmistoon sekä itse käyttöjärjestelmään. Tätä tekniikkaa pidetään melko turvallisena ja luotettavana sekä helppokäyttöisenä. Sitä käytetään pääasiassa sovelluksen sisäisten tuotteiden kehittämiseen.

ASP.NET Core -sovelluksen isäntämallit ovat kahden tyyppisiä, ts. Prosessin sisäinen isännöinti ja prosessin ulkopuolinen isännöinti. Ennen ASP.Net Core 2.2: ta oli vain yksi isäntämalli, joka on prosessin ulkopuolinen isäntä, mutta suorituskyvyn vuoksi Asp.net-ytimen 2.2 versioissa otetaan käyttöön prosessin sisäinen isännöintimalli.

Prosessin sisäisen hosting-mallin esittely Asp.net Coressa

Aikaisemmat ASP.NET Core -versiot vaativat yhden isännöimään sovellusta IIS: ssä käyttämällä prosessin ulkopuolista isäntämallia, joka välityspalvelin tapahtuu IIS: n kautta. IIS- tai IIS Express -sovellukset ostetut pyynnöt välitetään ASP.NET Core -verkkosovellukselle, joka toimii Kestrel Web Server -palvelimessa. Uudessa prosessin sisäisessä isännöinnissä isännöintiin käytetään kuitenkin vain yhtä palvelinta, kuten IIS, Nginx tai Linux. Se tarkoittaa, että sen sijaan, että pyyntöjä lähetettäisiin Kestrelille, isännöidään suoraan IIS-sovelluspoolin sisällä uutta Web-palvelinohjelmaa (IISHttpServer), joka palvelee pyyntöä. ASP.NET Core 3.1: n kanssa prosessin sisäistä hosting-mallia käytetään oletusmallina aina, kun kehität uuden sovelluksen olemassa olevaa mallia käyttämällä.

Ilmeisesti tällä isäntämallilla on paljon korkeaa suorituskykyä ja suorituskyvyn parannusta verrattuna prosessin ulkopuoliseen isäntämalliin.

Prosessin ulkopuolinen isäntämalli

Prosessin ulkopuolisissa isäntämalleissa voit joko käyttää Kestrel-palvelinta suoraan käyttäjän pyynnön edessä olevana palvelimena tai asentaa sovelluksen IIS: ään, joka toimii välityspalvelimena ja lähettää pyynnöt sisäiselle Kestrel-palvelimelle. Tällaisessa isäntämallissa sinulla on kaksi vaihtoehtoa isännöinnille, ts. Kestrelin ja välityspalvelimen käyttäminen:

1. Kestrelin käyttö

Tässä Kestrel itse toimii reunapalvelimena, joka suoraan palvelimen käyttäjää pyytää, mikä tarkoittaa, että Kestrel-palvelinta voi käyttää vain sovellukseen.

2. Välityspalvelimen käyttäminen

Kestrel-palvelimen rajoitusten vuoksi tätä ei voida käyttää kaikissa sovelluksissa. Tällaisissa tapauksissa on käytettävä tehokkaita palvelimia, kuten IIS, Apache tai NGINX. Joten tässä tilanteessa tämä palvelin toimii välityspalvelimena, joka ohjaa jokaisen pyynnön sisäiseen Kestrel-palvelimeen, jossa sovellus on käynnissä. Tässä toimii kaksi palvelinta, kuten IIS ja Kestrel.

Tämä isäntämalli on oletusmalli kaikille aiemmille .NET Core 2.2 -versioille toteutetuille sovelluksille. Yksi tämän tyypin käytön rajoituksista, kuten suorituskyvyn hitaus.

Lopulliset ajatukset:

Tosiasioiden mukaan suurin osa ASP.Net-verkkokehitysyrityksistä haluaa varmasti käyttää prosessin sisäistä isännöintiä. Koska se kuluttaa vähemmän resursseja ja tarjoaa hyvän suorituskyvyn. Koska se ei tarvitse lisäprosessia Kestrelille, se myös välttää ylimääräistä viestintää IIS: n ja Kestrelin välillä. On kuitenkin tapauksia, joissa halutaan valita prosessin ulkopuolinen isännöinti, kuten saman web-sovelluksen isännöinti Windowsissa ja Linuxissa. Kun puhutaan sovelluksen isännöinnistä muilla alustoilla, Kestrel on ensisijainen mekanismi, jota käytetään HTTP-pyyntöjen käsittelemiseen kaikilla alustoilla.

Prosessin sisäisen käytön suorittaminen IIS: ssä on kuitenkin paras tapa, ellei sinulla ole erityisiä vaatimuksia Kestrelille.

Pääkuva: Kuva Farzad Nazifi Unsplash-kuvasta




Kommentit (0)

Jätä kommentti