Тъй като .NET Core е кросплатформен, проектите ASP.NET Core могат да работят както на Windows, така и на Linux, а ако са внедрени на Windows, могат да бъдат внедрени на IIS или директно през командния ред, независимо от IIS услугите, благодарение на включването на контейнери Kestrel в ASP.NET Core.
За повече информация относно това как да разположите ASP.NET Core приложения в IIS услугите, можете да се обърнете към следното:
ASP.NET Core се внедрява в IISВ процес на разработкаиИзвън процесаДва модела за хостване
Ресурси:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Модел в процес
От ASP.NET Core 3.0,Хостингът в процеса е активиран по подразбиране за всички приложения, разположени в IIS, web.config файлът изглежда така:
може да се видиhostingModel="inprocess", модел в процесКестрел не се използва, но вместо това използва IISHttpServer(), за да реализира нов уеб сървър, хостван директно в IIS пула приложения, което е донякъде подобно на начина, по който традиционният ASP.NET беше въведен в IIS.
Следната диаграма илюстрира връзката между IIS, ASP.NET Core модулите и хоствани приложения в процес на работа:
Опитвайки се да влезете в сайта, можете да видите сървъра през заглавието за отговори, както е показано на изображението по-долу:
Ако разгледам процесите през диспечера на задачите, има само 2 процеса, както е показано на фигурата по-долу:
Модел извън процеса
Този модел IIS действа като обратен прокси и когато получи заявка, трябва да я препрати към услугата Kestrel, която е кросплатформен уеб сървър, вграден в ASP.NET Core приложения.
Следната диаграма илюстрира връзката между IIS, модулите ASP.NET Core и хоствани приложения извън процеса:
Модифицираме web.config файла по следния начин:
Когато достъпим уебсайта през браузър, виждаме, че стойността на сървъра в заглавието на отговора е станала Kestrel, както е показано на фигурата по-долу:
Гледайки едновременно в диспечера на задачите, открих, че има 3 процеса, както е показано на фигурата по-долу:
резюме
В управлявания модел InProcess, заявките и отговорите се предоставят чрез w3wp.exe или IISExpress, докато в процеса на OutOfProcess това е dotnet.exe В управлявания модел InProcess се използва един уеб сървър, докато в управлявания модел OutOfProcess могат да се използват два уеб сървъра.
Очевидната причина за използването на новия модел In-Process е, че е по-бърз и използва по-малко ресурси,Управляваният модел InProcess осигурява по-добра производителностЗащото се изпълнява директно в процеса на IIS пула за приложения. Няма вътрешен HTTP трафик и допълнителни разходи, а заявките се обработват веднага.
|