Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 7562|Odpowiedź: 2

[.NET Core] ASP.NET Core hostuje modele In-Process i Out-Of-Process w IIS

[Skopiuj link]
Opublikowano 2022-5-14 13:18:08 | | | |
Ponieważ .NET Core działa na różnych platformach, projekty ASP.NET Core mogą działać zarówno na Windows, jak i Linuksie, a jeśli zostaną wdrożone na Windowsie, mogą być wdrażane na IIS lub uruchamiane bezpośrednio przez linię poleceń, niezależnie od usług IIS, dzięki włączeniu kontenerów Kestrel w ASP.NET Core.

Aby uzyskać więcej informacji o wdrażaniu ASP.NET Core aplikacji na usługach IIS, możesz odnieść się do następujących informacji:

Wdrożenie ASP.NET Core na serwerze IIS
https://www.itsvse.com/thread-7838-1-1.html
ASP.NET Core jest wdrażany w IISW trakcieiZakończenie procesuDwa modele hostingowe

Zasoby:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.


Model w trakcie procesu

Od ASP.NET Core 3.0,Hosting w trakcie procesu jest domyślnie włączony dla wszystkich aplikacji wdrożonych na IIS, plik web.config wygląda tak:

można zobaczyćhostingModel="inprocess", model w trakcie procesuKestrel nie jest używany, ale zamiast tego używa IISHttpServer() do implementacji nowego serwera WWW hostowanego bezpośrednio w puli aplikacji IIS, co jest nieco podobne do tego, jak tradycyjne ASP.NET wprowadzono do IIS.

Poniższy diagram ilustruje relacje między modułami IIS, ASP.NET Core a aplikacjami hostowanymi w trakcie procesu:



Próbując uzyskać dostęp do strony internetowej, można zobaczyć serwer przez nagłówek odpowiedzi, jak pokazano na poniższym obrazku:



Patrząc na procesy przez menedżera zadań, są tylko 2 procesy, jak pokazano na poniższym rysunku:



Model poza procesem

Ten model IIS działa jak odwrócony proxy, a gdy otrzyma żądanie, musi je przesłać do usługi Kestrel, czyli wieloplatformowego serwera WWW wbudowanego w ASP.NET aplikacje Core.

Poniższy diagram ilustruje relacje między modułami IIS, ASP.NET Core a aplikacjami hostowanymi poza procesem:



Modyfikujemy plik web.config w następujący sposób:

Gdy wchodzimy na stronę przez przeglądarkę, widzimy, że wartość serwera nagłówka odpowiedzi stała się Kestrel, co pokazano na poniższym rysunku:



Patrząc jednocześnie na menedżera zadań, zauważyłem, że istnieją 3 procesy, jak pokazano na poniższym rysunku:



streszczenie

W modelu zarządzanym InProcess żądania i odpowiedzi są dostarczane przez w3wp.exe lub IISExpress, natomiast w procesie OutOfProcess worker jest to dotnet.exe
W modelu zarządzanym InProcess używany jest jeden serwer WWW, natomiast w modelu zarządzanym OutOfProcess można użyć dwóch serwerów WWW.

Oczywistym powodem stosowania nowego modelu In-Process jest szybszy i wymaga mniej zasobów,Model zarządzany InProcess zapewnia lepszą wydajnośćPonieważ działa bezpośrednio w procesie puli aplikacji IIS. Nie ma wewnętrznego ruchu HTTP ani narzutu, a żądania są przetwarzane natychmiast.





Poprzedni:Nginx dodaje włączony protokół HTTP/2
Następny:Nieprawidłowe używanie HttpClient może zepsuć oprogramowanie
 Ziemianin| Opublikowano 2022-5-14 o 13:20:23 |
ASP.NET Wydajność w procesie Core i poza nim:http://blog.iis7.com/article/5958.html
ASP.NET Test wydajności Core 5 pod IIS, Nginx, Caddy:https://cloud.tencent.com/developer/article/1788073
Opublikowano 2022-5-14 15:07:14 |
Naucz się uczyć
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com