Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 7562|Відповідь: 2

[.NET Core] ASP.NET Core розміщує моделі In-Process та Out-of-Process у IIS

[Копіювати посилання]
Опубліковано 2022-5-14 13:18:08 | | | |
Оскільки .NET Core кросплатформенний, проєкти ASP.NET Core можуть запускатися як на Windows, так і на Linux, а якщо розгортаються на Windows, їх можна розгортати на IIS або запускати безпосередньо через командний рядок, незалежно від сервісів IIS, завдяки включенню контейнерів Kestrel у ASP.NET Core.

Для отримання додаткової інформації про те, як розгортати ASP.NET Core додатків у сервіси IIS, ви можете звернутися до наступного:

Розгортати ASP.NET Core на сервер IIS
https://www.itsvse.com/thread-7838-1-1.html
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-трафіку та накладних витрат немає, запити обробляються негайно.





Попередній:Nginx додає увімкнений протокол HTTP/2
Наступний:Неправильне використання HttpClient може пошкодити ваше програмне забезпечення
 Орендодавець| Опубліковано 2022-5-14 13:20:23 |
ASP.NET Продуктивність як у процесі Core, так і поза ним:http://blog.iis7.com/article/5958.html
ASP.NET Тест продуктивності Core 5 під керівництвом IIS, Nginx, Caddy:https://cloud.tencent.com/developer/article/1788073
Опубліковано 2022-5-14 15:07:14 |
Вчитися вчитися
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com