Hvordan Asp.Net Core Hosting Model bruges i webapplikationer?

Asp.net-kerne har en betydelig forbedring af hosting-modellen. Det forventedes i de tidligere versioner at være vært for Asp.net Core-webapplikationerne via proxy-webservere såsom IIS på Windows, Apache eller NGINX. Imidlertid tillader ny Asp.net core 2.2 direkte vært for Asp.net-applikationen i Windows inden for IIS uden kravene til den eksterne server. Dette øger således gennemstrømningen ved hjælp af simpel In-Process-hostingmekanisme.

Hosting-modeller i ASP.NET Core

ASP.NET er en teknologi fra Microsoft, der giver dig mulighed for at oprette dynamiske sider på webserversiden.

Hosting ASP.NET er fuldt integreret med Windows -baseret software såvel som med selve operativsystemet. Denne teknologi betragtes som ganske sikker og pålidelig såvel som let at bruge. Det bruges hovedsageligt til udvikling af produkter i appen.

Hosting-modeller i ASP.NET Core er af to typer, dvs. hosting i processen og hosting uden for processen. Før ASP.Net Core 2.2 var der kun én hostingmodel, som er hosting uden for processen, men på grund af ydeevnen introduceres In-Process Hosting Model i Asp.net core 2.2-versioner.

Introduktion af hostingmodel i processen i Asp.net Core

De tidligere versioner af ASP.NET Core krævede, at en var vært for applikationen i IIS ved hjælp af en hostingmodel, der ikke var i processen, og som fungerer via IIS. Anmodninger, der rammer IIS eller IIS Express, videresendes til ASP.NET Core-webapplikationen, der kører inden for Kestrel Web Server. Med den nye hosting i processen bruges dog kun en server til hosting som IIS, Nginx eller Linux. Det betyder, at i stedet for at videresende anmodninger til Kestrel, hostes en ny webserverimplementering (IISHttpServer) direkte inde i IIS Application Pool, der tjener anmodningen. Med ASP.NET Core 3.1 bruges hosting-model i processen som en standardmodel, hver gang du udvikler en ny applikation ved hjælp af en eksisterende skabelon.

Tilsyneladende har denne hostingmodel meget høj kapacitet og forbedret ydelse i sammenligning med hostingmodellen uden for processen.

Out-of-Process Hosting-model

I hostingmodeller, der ikke er processer, kan du enten bruge Kestrel-serveren direkte som en brugeranmodning, der vender mod serveren, eller du kan distribuere applikationen i IIS, som fungerer som en proxyserver og sender anmodninger til den interne Kestrel-server. I denne type hosting-model har du to muligheder for hosting, dvs. ved hjælp af Kestrel og Proxy Server:

1. Brug af Kestrel

I dette fungerer Kestrel selv som kantserver, som direkte serverbruger anmoder om, hvilket betyder, at man kun kan bruge Kestrel-serveren til applikationen.

2. Brug af en proxyserver

På grund af Kestrel-serverens begrænsninger kan man ikke bruge dette i alle applikationer. I sådanne tilfælde skal man bruge kraftfulde servere som IIS, Apache eller NGINX. Så i denne situation fungerer denne server som en reserve-proxyserver, der vil omdirigere enhver anmodning til det interne Kestrel-afsnit, hvor applikationen kører. Her kører to servere som IIS og Kestrel.

Denne hostingmodel er en standardmodel for alle de applikationer, der er implementeret tidligere .NET Core 2.2-version. En af begrænsningerne ved at bruge denne type, f.eks. Langsomhed i ydeevne.

Afsluttende tanker:

Pr. Kendsgerning ønsker de fleste af ASP.Net-webudviklingsfirmaerne bestemt at bruge In-Process-hostingmodellen. Da det bruger mindre ressourcer og giver god ydelse. Da det ikke behøver en ekstra proces til Kestrel, og det undgår også ekstra kommunikation mellem IIS og Kestrel. Der er dog tilfælde, hvor man måske ønsker at vælge hosting uden for processen, f.eks. I tilfælde af hosting af den samme webapplikation i Windows og Linux. Når man taler om at være vært for applikationen på andre platforme, er Kestrel den primære mekanisme, der bruges til at håndtere HTTP-anmodninger på alle platforme.

At køre In-Process på IIS er dog den bedste måde, medmindre du har et meget specifikt krav til Kestrel.

Hovedbillede kredit: Foto af Farzad Nazifi på Unsplash




Kommentarer (0)

Efterlad en kommentar