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:
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.
|