Оскільки .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", модель у процесіKestrel не використовується, але натомість використовує 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-трафіку та накладних витрат немає, запити обробляються негайно.
|