W jaki sposób model hostingu Asp.Net Core wykorzystywany w aplikacjach internetowych?




Rdzeń Asp.net ma znaczące ulepszenie w modelu hostingowym. We wcześniejszych wersjach oczekiwano hostowania aplikacji internetowych Asp.net Core za pośrednictwem serwerów proxy, takich jak IIS w systemie Windows, Apache lub NGINX. Jednak nowy Asp.net Core 2.2 pozwala bezpośrednio hostować aplikację Asp.net w systemie Windows w IIS bez wymagań serwera zewnętrznego. W ten sposób zwiększa się przepustowość przy użyciu prostego mechanizmu hostingu w procesie.

Modele hostingu w programie ASP.NET Core

Modele hostingu w programie ASP.NET Core są dwojakiego rodzaju, tj. Hosting w trakcie procesu i Hosting poza procesem. Przed ASP.Net Core 2.2 istniał tylko jeden model hostingu, którym jest hosting poza procesem, ale ze względu na wydajność wprowadzono model hostowania w procesie w wersji Asp.net core 2.2.

Wprowadzenie modelu hostingu w trakcie procesu w Asp.net Core

Poprzednie wersje programu ASP.NET Core wymagały hostowania aplikacji w usługach IIS przy użyciu modelu hostingu poza procesem, który pośredniczy w usługach IIS. Żądania trafione w IIS lub IIS Express są przekazywane do aplikacji sieci Web ASP.NET Core działającej na serwerze Kestrel Web Server. Jednak dzięki nowemu procesowi hostowania tylko jeden serwer jest wykorzystywany do hostingu takiego jak IIS, Nginx lub Linux. Oznacza to, że zamiast przekazywać żądania do Kestrel, nowa implementacja serwera WWW (IISHttpServer) jest hostowana bezpośrednio w puli aplikacji IIS, która będzie obsługiwać żądanie. W programie ASP.NET Core 3.1 model hostingu wewnątrzprocesowego jest używany jako model domyślny za każdym razem, gdy tworzysz nową aplikację przy użyciu istniejącego szablonu.

Najwyraźniej ten model hostingu ma znacznie wyższą przepustowość i poprawę wydajności w porównaniu z modelem hostingu Out-Of-Process.

Model hostingu poza procesem

W modelach hostingu poza procesem możesz albo użyć serwera Kestrel bezpośrednio jako serwera z żądaniami użytkowników, albo możesz wdrożyć aplikację w IIS, który będzie działał jako serwer proxy i wysyła żądania do wewnętrznego serwera Kestrel. W tego rodzaju modelu hostingu masz dwie opcje hostingu, tj. Używanie Kestrel i serwera proxy:

1. Korzystanie z pustułki

W tym przypadku sam Kestrel działa jako serwer brzegowy, który bezpośrednio żąda użytkowników serwera, co oznacza, że ​​można używać tylko serwera Kestrel dla aplikacji.

2. Korzystanie z serwera proxy


Z powodu ograniczeń serwera Kestrel nie można tego używać we wszystkich aplikacjach. W takich przypadkach należy użyć potężnych serwerów, takich jak IIS, Apache lub NGINX. W tej sytuacji serwer ten działa jak rezerwowy serwer proxy, który przekieruje każde żądanie do wewnętrznego serwera Kestrel, w którym działa aplikacja. Tutaj działają dwa serwery, takie jak IIS i Kestrel.

Ten model hostingu jest domyślnym modelem dla wszystkich aplikacji zaimplementowanych wcześniej .NET Core 2.2. Jednym z ograniczeń korzystania z tego typu jest spowolnienie wydajności.

Końcowe przemyślenia:

Według faktów, większość firm programistycznych ASP.Net z pewnością chce korzystać z modelu hostingu In-Process. Ponieważ zużywa mniej zasobów i zapewnia dobrą wydajność. Ponieważ nie wymaga dodatkowego procesu dla Kestrel, a także pozwala uniknąć dodatkowej komunikacji między IIS a Kestrel. Są jednak przypadki, w których można chcieć wybrać hosting poza procesem, na przykład w przypadku hostowania tej samej aplikacji internetowej w systemie Windows i Linux. Mówiąc o hostowaniu aplikacji na innych platformach, Kestrel jest podstawowym mechanizmem używanym do obsługi żądań HTTP na wszystkich platformach.

Jednak uruchomienie In-Process na IIS jest najlepszym sposobem, chyba że masz bardzo specyficzne wymagania dotyczące Kestrel.

Główne zdjęcie: Zdjęcie Farzada Nazifi na Unsplash


Międzynarodowe doradztwo biznesowe
O autorze - Międzynarodowe doradztwo biznesowe
Yoann jest międzynarodowym konsultantem biznesowym, moderatorem i koordynatorem. Pracował ponad 10 lat w globalnym biznesie, łańcuchu dostaw, finansach, projektach SAP ERP, optymalizacji sieci i SEO dla różnych branż, takich jak logistyka, kosmetyki, towary konsumpcyjne, pielęgnacja urody lub moda, w ponad 30 krajach na całym świecie. .
 


Komentarze (0)

zostaw komentarz