Protože .NET Core je multiplatformní, projekty ASP.NET Core mohou běžet jak na Windows, tak na Linuxu, a pokud jsou nasazeny na Windows, mohou být nasazeny na IIS nebo přímo přes příkazovou řádku, nezávisle na službách IIS, díky zařazení Kestrel kontejnerů do ASP.NET Core.
Pro více informací o nasazení ASP.NET Core aplikací na služby IIS se můžete podívat na následující:
ASP.NET Core je nasazen v IISPrůběhaNeukončenéDva modely hostitelství
Prostředky:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Model průběhu procesu
Od ASP.NET Core 3.0,Hostování během procesu je ve výchozím nastavení povoleno pro všechny aplikace nasazené na IIS, soubor web.config vypadá takto:
lze viděthostingModel="inprocess", model v procesuKestrel se nepoužívá, ale místo toho používá IISHttpServer() k implementaci nového webového serveru hostovaného přímo v aplikačním poolu IIS, což je do jisté míry podobné tomu, jak byl tradiční ASP.NET zaveden do IIS.
Následující diagram ilustruje vztah mezi IIS, moduly ASP.NET Core a aplikacemi hostovanými v procesu:
Při pokusu o přístup na web můžete server vidět přes hlavičku odpovědi, jak je vidět na obrázku níže:
Při pohledu na procesy přes správce úloh jsou pouze 2 procesy, jak je znázorněno na obrázku níže:
Model mimo proces
Tento model IIS funguje jako reverzní proxy a když obdrží požadavek, musí jej přeposlat do služby Kestrel, což je multiplatformní webový server zabudovaný v ASP.NET Core aplikacích.
Následující diagram ilustruje vztah mezi IIS, ASP.NET Core moduly a aplikacemi hostovanými mimo proces:
Web.config soubor upravujeme následovně:
Když přistupujeme na web přes prohlížeč, vidíme, že hodnota serveru v hlavičce odpovědi se změnila na Kestrel, jak je znázorněno na obrázku níže:
Když jsem se současně podíval do správce úloh, zjistil jsem, že existují 3 procesy, jak je znázorněno na obrázku níže:
shrnutí
V modelu spravovaném InProcess jsou požadavky a odpovědi poskytovány prostřednictvím w3wp.exe nebo IISExpress, zatímco v pracovním procesu OutOfProcess je to dotnet.exe V modelu spravovaném InProcess se používá jeden webový server, zatímco v modelu spravovaném OutOfProcess lze použít dva webové servery.
Zřejmým důvodem pro použití nového modelu In-Process je rychlejší a spotřebovává méně zdrojů,Spravovaný model InProcess poskytuje lepší výkonProtože běží přímo v procesu IIS aplikačního poolu. Neexistuje žádný interní HTTP provoz ani režie, požadavky jsou zpracovávány okamžitě.
|