Как моделът на основен хостинг на Asp.Net се използва в уеб приложения?



Ядрото на Asp.net има значително подобрение на хостинг модела. Очакваше се в по-ранните версии да бъде домакин на уеб приложенията на Asp.net Core чрез прокси уеб сървъри като IIS на Windows, Apache или NGINX. Новото ядро ​​на Asp.net обаче позволява директно хостинг на приложението Asp.net в Windows в рамките на IIS без изискванията за външен сървър. По този начин, това увеличава пропускателната способност, използвайки прост хостинг механизъм In-Process.

Хостинг модели в ASP.NET Core

ASP.NET е технология от Microsoft, която ви позволява да създавате динамични страници от страна на уеб сървъра.

Хостингът на ASP.NET е напълно интегриран със софтуер, базиран на Windows, както и със самата операционна система. Тази технология се счита за доста безопасна и надеждна, както и лесна за използване. Използва се главно за разработването на продукти в приложението.

Хостинг моделите в ASP.NET Core са от два типа, т.е. хостинг в процес и хостинг извън процес. Преди ASP.Net Core 2.2 имаше само един хостинг модел, който е хостинг извън процес, но поради производителността се въвежда In-Process Hosting Model в Asp.net основни версии 2.2.

Въвеждане на хостинг модел в процес в Core Asp.net

Предишните версии на ASP.NET Core изискват една да хоства приложението в IIS, използвайки хостинг модел извън процес, който прокси чрез IIS. Заявките, които удрят IIS или IIS Express, се препращат към уеб приложението ASP.NET Core, работещо в рамките на Kestrel Web Server. Въпреки това, с новия хостинг в процеса, за хостинг се използва само един сървър като IIS, Nginx или Linux. Това означава, че вместо да препраща заявки към Kestrel, нова реализация на уеб сървър (IISHttpServer) се хоства директно в пула за приложения на IIS, който ще обслужва заявката. С ASP.NET Core 3.1, хостинг моделът в процес се използва като модел по подразбиране, когато разработвате ново приложение, използвайки съществуващ шаблон.

Очевидно този хостинг модел има много по-висока производителност и подобряване на производителността в сравнение с хостинг модела Out-Of-Process.

Модел за хостинг извън процес

В хостинг модели извън процес можете да използвате сървъра Kestrel директно като сървър на потребителска заявка или можете да разгърнете приложението в IIS, което ще действа като прокси сървър и изпраща заявки до вътрешния сървър на Kestrel. В този вид хостинг модел имате две възможности за хостинг, т.е. Използване на Kestrel и Proxy Server:

1. Използване на Kestrel

По този начин самият Kestrel действа като ръчен сървър, който директно заявява потребителя на сървъра, което означава, че човек може да използва само Kestrel сървъра за приложението.

2. Използване на прокси сървър

Поради ограниченията на Kestrel сървъра, не може да се използва това във всички приложения. В такива случаи човек трябва да използва мощни сървъри като IIS, Apache или NGINX. Така че в тази ситуация този сървър действа като резервен прокси сървър, който ще пренасочва всяка заявка към вътрешната север Kestrel, където се изпълнява приложението. Тук работят два сървъра като IIS и Kestrel.

Този хостинг модел е модел по подразбиране за всички приложения, внедрени по-рано .NET Core 2.2 версия. Едно от ограниченията на използването на този тип, като например бавна производителност.

Заключителни мисли:

Според фактите повечето от уеб разработчиците на ASP.Net със сигурност искат да използват модела за хостинг в процеса. Тъй като той изразходва по-малко ресурси и осигурява добри резултати. Тъй като не се нуждае от допълнителен процес за Kestrel и също така избягва допълнителна комуникация между IIS и Kestrel. Има обаче случаи, в които човек може да иска да избере хостинг извън процесите, като например в случай на хостинг на едно и също уеб приложение в Windows и в Linux. Когато говорим за хостинг на приложението на други платформи, Kestrel е основният механизъм, използван за обработка на HTTP заявки във всички платформи.

Въпреки това, пускането на In-Process на IIS е най-добрият начин, освен ако нямате много специфични изисквания към Kestrel.

Основна кредитна картина: Снимка от Farzad Nazifi на Unsplash




Коментари (0)

Оставете коментар