Hvordan Asp.Net Core Hosting-modell brukes i webapplikasjoner?



Asp.net-kjernen har betydelig forbedring av vertsmodellen. Det ble forventet i de tidligere versjonene å være vert for Asp.net Core webapplikasjoner gjennom proxy-webservere som IIS på Windows, Apache eller NGINX. Imidlertid tillater ny Asp.net core 2.2 direkte hosting Asp.net-applikasjonen i Windows innen IIS uten krav til ekstern server. Dermed øker dette gjennomstrømningen ved hjelp av enkel hosting-mekanisme i prosessen.

Vertsmodeller i ASP.NET Core

ASP.NET er en teknologi fra Microsoft som lar deg lage dynamiske sider på webserversiden.

Hosting ASP.NET er fullt integrert med Windows -basert programvare så vel som med selve operativsystemet. Denne teknologien anses som ganske trygg og pålitelig, så vel som enkel å bruke. Det brukes hovedsakelig til utvikling av produkter i appen.

Hosting-modeller i ASP.NET Core er av to typer, dvs. hosting i prosessen og hosting uten prosess. Før ASP.Net Core 2.2 var det bare én vertsmodell, som er hosting uten prosess, men på grunn av ytelsen, blir In-Process Hosting Model i Asp.net core 2.2-versjoner introdusert.

Introduksjon av hostingmodell i prosess i Asp.net Core

De forrige versjonene av ASP.NET Core krevde en for å være vert for applikasjonen i IIS ved å bruke en vertsmodell uten prosess som fullmakter gjennom IIS. Forespørsler som treffer IIS eller IIS Express blir videresendt til ASP.NET Core webapplikasjon som kjører innenfor Kestrel Web Server. Imidlertid, med den nye hostingprosessen, brukes bare en server for hosting som IIS, Nginx eller Linux. Det betyr at i stedet for å videresende forespørsler til Kestrel, blir en ny webserverimplementering (IISHttpServer) vert rett i IIS Application Pool, som vil tjene forespørselen. Med ASP.NET Core 3.1 brukes vertsmodell i prosess som standardmodell når du utvikler en ny applikasjon ved hjelp av en eksisterende mal.

Tilsynelatende har denne vertsmodellen mye høy gjennomstrømning og forbedret ytelse når det gjelder å sammenligne med Out-of-Process-vertsmodellen.

Vertsmodell utenfor prosessen

I ikke-prosess-vertsmodeller kan du enten bruke Kestrel-serveren direkte som en brukerforespørsel som server, eller du kan distribuere applikasjonen i IIS som vil fungere som en proxy-server og sende forespørsler til den interne Kestrel-serveren. I denne typen vertsmodeller har du to alternativer for hosting, det vil si å bruke Kestrel og Proxy Server:

1. Bruke Kestrel

I dette fungerer Kestrel selv som kantserver som direkte serverbruker ber om, noe som betyr at man bare kan bruke Kestrel-serveren for applikasjonen.

2. Bruke en proxy-server

På grunn av begrensningene på Kestrel-serveren, kan man ikke bruke dette i alle applikasjonene. I slike tilfeller må man bruke kraftige servere som IIS, Apache eller NGINX. I denne situasjonen fungerer denne serveren som en reservproxy-server som vil omdirigere enhver forespørsel til den interne Kestrel-delen der applikasjonen kjører. Her kjører to servere som IIS og Kestrel.

Denne vertsmodellen er en standardmodell for alle applikasjoner implementert tidligere. NET Core 2.2-versjon. En av begrensningene ved bruk av denne typen, for eksempel langsom ytelse.

Siste tanker:

I henhold til fakta, de fleste av  ASP.Net webutviklingsselskaper   ønsker absolutt å bruke In-Process hosting-modellen. Siden det bruker mindre ressurser og gir god ytelse. Ettersom den ikke trenger en ekstra prosess for Kestrel, og den unngår også ekstra kommunikasjon mellom IIS og Kestrel. Imidlertid er det tilfeller der det kan være lurt å velge Out-of-Process-hosting, for eksempel i tilfelle av hosting av den samme webapplikasjonen i Windows og i Linux. Når jeg snakker om å være vert for applikasjonen på andre plattformer, er Kestrel den primære mekanismen som brukes til å håndtere HTTP-forespørsler på alle plattformer.

Å kjøre In-Process på IIS er imidlertid den beste måten med mindre du har et veldig spesifikt krav til Kestrel.

Hovedbildekreditt: Foto av Farzad Nazifi på Unsplash




kommentarer (0)

Legg igjen en kommentar