Keďže .NET Core je multiplatformový, projekty ASP.NET Core môžu bežať na Windows aj Linuxe, a ak sú nasadené na Windows, môžu byť nasadené na IIS alebo priamo cez príkazový riadok, nezávisle od IIS služieb, vďaka zahrnutiu Kestrel kontajnerov v ASP.NET Core.
Pre viac informácií o tom, ako nasadiť ASP.NET Core aplikácie na služby IIS, sa môžete pozrieť na nasledovné:
ASP.NET Core je nasadený v IISV proceseaUkončenie procesuDva hostiteľské modely
Zdroje:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Model v procese
Od ASP.NET Core 3.0,In-Process hosting je predvolene povolený pre všetky aplikácie nasadené v IIS, súbor web.config vyzerá takto:
je viditeľnéhostingModel="v procese", model v proceseKestrel sa nepoužíva, ale namiesto toho používa IISHttpServer() na implementáciu nového webového servera hostovaného priamo v aplikačnom poole IIS, čo je do istej miery podobné tomu, ako bola tradičná ASP.NET zavedená do IIS.
Nasledujúci diagram ilustruje vzťah medzi IIS, modulmi ASP.NET Core a aplikáciami hostovanými v procese:
Pri pokuse o prístup na webovú stránku môžete server vidieť cez hlavičku odpovede, ako je znázornené na obrázku nižšie:
Pri pohľade na procesy cez správcu úloh sú len 2 procesy, ako je znázornené na obrázku nižšie:
Model mimo procesu
Tento model IIS funguje ako reverzný proxy a keď prijme požiadavku, musí ju presmerovať do služby Kestrel, čo je multiplatformový webový server zabudovaný v ASP.NET Core aplikáciách.
Nasledujúci diagram ilustruje vzťah medzi IIS, jadrovými modulmi ASP.NET a hostovanými aplikáciami mimo procesu:
Súbor web.config upravujeme nasledovne:
Keď pristupujeme na webovú stránku cez prehliadač, vidíme, že hodnota servera v hlavičke odpovede sa zmenila na Kestrel, ako je znázornené na obrázku nižšie:
Keď som sa zároveň pozrel do správcu úloh, zistil som, že existujú 3 procesy, ako je znázornené na obrázku nižšie:
súhrn
V modeli spravovanom InProcess sú požiadavky a odpovede poskytované prostredníctvom w3wp.exe alebo IISExpress, zatiaľ čo v pracovnom procese OutOfProcess je to dotnet.exe V spravovanom modeli InProcess sa používa jeden webový server, zatiaľ čo v modeli spravovaného OutOfProcess môžu byť použité dva webové servery.
Zrejmým dôvodom použitia nového modelu In-Process je, že je rýchlejší a spotrebuje menej zdrojov,Spravovaný model InProcess poskytuje lepší výkonPretože beží priamo v procese IIS aplikačného poolu. Neexistuje žiadna interná HTTP prevádzka ani režijné náklady, požiadavky sa spracovávajú okamžite.
|