Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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", модель в процессеПустельга не используется, но вместо этого использует 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