hostprofi.ru
Подобрать хостинг
Термин·буква Х

Хостинг .NET

краткое определение

Хостинг .NET — сервер для запуска веб-приложений на платформе Microsoft .NET (ASP.NET Core): поддерживает Kestrel или IIS как веб-сервер, работает на Windows Server или Linux, требует установленного .NET Runtime 6.0+ или 8.0+.

Хостинг .NET — размещение веб-приложений, написанных на C#, F# или VB.NET с использованием фреймворка ASP.NET Core. В отличие от PHP-хостинга, .NET-приложения запускаются как постоянные процессы, а не перезапускаются при каждом запросе. Это обеспечивает высокую производительность — ASP.NET Core стабильно входит в топ-5 самых быстрых веб-фреймворков в тестах TechEmpower.

Как работает

ASP.NET Core приложение запускается через встроенный веб-сервер Kestrel. Kestrel принимает HTTP-запросы напрямую или через reverse proxy (Nginx или IIS). На Linux Nginx выступает как reverse proxy: принимает внешние запросы и передаёт их Kestrel на локальном порту (обычно 5000 или 5001).

На Windows сервере приложение запускается под управлением Microsoft IIS через модуль ASP.NET Core Module (ANCM), который управляет процессом и перезапускает его при сбоях. На Linux приложение запускается как systemd-сервис.

Деплой выполняется через публикацию (dotnet publish), которая компилирует приложение в исполняемый файл с зависимостями. Runtime-зависимый деплой требует установленного .NET Runtime на сервере; self-contained деплой включает рантайм в артефакт сборки (размер ~60–100 МБ).

История

.NET Framework выпущен Microsoft в 2002 году. В 2016 году Microsoft анонсировала кроссплатформенный .NET Core, работающий на Linux и macOS. В 2020 году .NET Core и .NET Framework объединились в .NET 5. На 2024 год актуальны .NET 8 (LTS) и .NET 9.

На что обращать внимание

Убедитесь, что на сервере установлена нужная версия .NET Runtime: dotnet --list-runtimes. ASP.NET Core 8.0 работает на Ubuntu 20.04+, Debian 11+, CentOS Stream 9. Для Windows-специфичных компонентов (Windows Authentication, COM-объекты) нужен Windows Server. Производительность .NET на Linux сопоставима с Windows при идентичном железе.

Деплой на IIS (Windows Server)

На VPS Windows деплой через WebDeploy или копирование файлов. Модуль ASP.NET Core (ANCM) управляет процессом и перезапускает при сбоях. IIS Application Pool — режим No Managed Code.

Мониторинг .NET приложений

Prometheus с dotnet-runtime-metrics и Grafana — стандарт для self-hosted. Sentry обрабатывает исключения. Health check: app.MapHealthChecks("/health"). Мониторинг сервера — через Netdata.

Типичные проблемы

Установить .NET Runtime вместо ASP.NET Core Runtime — распространённая ошибка. Проверять: dotnet --list-runtimes. Права на папку приложения для systemd-сервиса — чтение и запись для лог-файлов.

Windows vs Linux для .NET Core

.NET Core 3.1+ / .NET 5+: одинаковая производительность на Linux и Windows. Linux дешевле (нет лицензии) и потребляет меньше RAM. Linux VPS за $5/мес vs Windows VPS за $15–25/мес. Для нового .NET Core проекта предпочтителен Linux.

Мониторинг .NET приложений на Linux

dotnet-counters monitor -n myapp --counters System.Runtime — встроенный мониторинг runtime. Prometheus + prometheus-net: метрики GC, threads, requests. .NET EventPipe для low-overhead профилировки. Sentry.NET SDK для сбора необработанных исключений.

Другие термины