Hoe Asp.Net Core Hosting Model gebruikt in webapplicaties?



De kern van Asp.net is aanzienlijk verbeterd in het hostingmodel. In eerdere versies werd verwacht dat de Asp.net Core-webtoepassingen zouden worden gehost via proxy-webservers zoals IIS op Windows, Apache of NGINX. De nieuwe Asp.net core 2.2 maakt het echter mogelijk om de Asp.net-applicatie rechtstreeks in Windows te hosten binnen IIS zonder de externe serververeisten. Dit verhoogt dus de doorvoer met behulp van een eenvoudig In-Process hostingmechanisme.

Hostingmodellen in ASP.NET Core

ASP.NET is een technologie van Microsoft waarmee u dynamische pagina's aan de webserverzijde kunt maken.

Hosting ASP.NET is volledig geïntegreerd met Windows -software en met het besturingssysteem zelf. Deze technologie wordt als vrij veilig en betrouwbaar beschouwd, evenals gemakkelijk te gebruiken. Het wordt voornamelijk gebruikt voor de ontwikkeling van in-app-producten.

Hostingmodellen in ASP.NET Core zijn van twee typen, namelijk In-process Hosting en Out-of-process Hosting. Vóór ASP.Net Core 2.2 was er slechts één hostingmodel, namelijk Out-of-process hosting, maar vanwege de prestaties wordt In-Process Hosting Model in Asp.net core 2.2-versies geïntroduceerd.

Introductie van In-process Hosting Model in Asp.net Core

Voor de vorige versies van ASP.NET Core was er een nodig om de applicatie in IIS te hosten met behulp van een Out-of-Process hostingmodel dat via IIS proxyde. Verzoeken die IIS of IIS Express raken, worden doorgestuurd naar de ASP.NET Core-webtoepassing die wordt uitgevoerd binnen Kestrel Web Server. Bij de nieuwe In-process hosting wordt echter maar één server gebruikt voor hosting zoals IIS, Nginx of Linux. Het betekent dat in plaats van verzoeken naar Kestrel door te sturen, een nieuwe Web Server-implementatie (IISHttpServer) direct binnen de IIS Application Pool wordt gehost, die het verzoek zal dienen. Met de ASP.NET Core 3.1 wordt het In-process hostingmodel als standaardmodel gebruikt wanneer u een nieuwe applicatie ontwikkelt met een bestaande sjabloon.

Blijkbaar heeft dit hostingmodel een veel hogere doorvoer en prestatieverbetering in vergelijking met het Out-Of-Process hostingmodel.

Out-of-Process Hosting Model

In Out-of-process hosting-modellen kunt u de Kestrel-server rechtstreeks gebruiken als een gebruikersverzoek tegenover de server of u kunt de applicatie in IIS implementeren, die zal fungeren als een proxyserver en verzoeken naar de interne Kestrel-server verzendt. In dit soort hostingmodel heb je twee opties voor hosting, namelijk Kestrel en Proxy Server gebruiken:

1. Torenvalk gebruiken

Hierin fungeert Kestrel zelf als edge-server die rechtstreeks gebruikersverzoeken van de server uitvoert, wat betekent dat men alleen de Kestrel-server voor de applicatie kan gebruiken.

2. Met behulp van een proxyserver

Vanwege beperkingen van de Torenvalk server kan men dit niet in alle applicaties gebruiken. In zulke gevallen moet men krachtige servers gebruiken zoals IIS, Apache of NGINX. In deze situatie fungeert deze server dus als een reserve-proxyserver die elk verzoek omleidt naar de interne Torenvalk-server waar de toepassing wordt uitgevoerd. Hier draaien twee servers zoals IIS en Torenvalk.

Dit hostingmodel is een standaardmodel voor alle eerder geïmplementeerde applicaties .NET Core 2.2-versie. Een van de beperkingen bij het gebruik van dit type, zoals trage prestaties.

Laatste gedachten:

Volgens de feiten willen de meeste ASP.Net-webontwikkelingsbedrijven zeker het In-Process hostingmodel gebruiken. Omdat het minder bronnen verbruikt en goede prestaties levert. Omdat het geen extra proces nodig heeft voor Torenvalk en het ook extra communicatie tussen de IIS en Torenvalk vermijdt. Er zijn echter gevallen waarin men voor Out-Of-Process hosting kan kiezen, zoals in het geval van het hosten van dezelfde webapplicatie in Windows en in Linux. Als we het hebben over het hosten van de applicatie op andere platforms, is Torenvalk het belangrijkste mechanisme dat wordt gebruikt om HTTP-verzoeken op alle platforms af te handelen.

In-Process uitvoeren op IIS is echter de beste manier, tenzij u een zeer specifieke vereiste voor Torenvalk heeft.

Hoofdfoto tegoed: foto door Farzad Nazifi op Unsplash




Comments (0)

laat een reactie achter