Хостинг
VDS
Аренда серверов
Домены
Почта
SSL
Хранилище
Сайты
Обзоры
Регламенты
AI Studio
Kubernetes
Архив
Как запустить сайт на Csharp(С#)

Хостинг - как запустить сайт на C

В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.

В рамках этой статьи мы в качестве примера запустим простой сайт на C#. Начиная с .NET 5 и новее, появилась нативная поддержка Linux, поэтому такие проекты можно запускать на услуге «Хостинг».

Примеры доработок будут показаны на основе минимального API от Microsoft

1) Настройка Kestrel
Для начала потребуется добавить в файл appsettings.json блок Kestrel, чтобы иметь возможность использовать нестандартный порт и IP-адрес для запуска приложения. Итоговый файл appsettings.json должен выглядеть следующим образом:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "sitename.ru",
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://127.0.0.1:5001"
      }
    }
  }
}

2) Публикация приложения
Опубликуйте приложение. Важно указать режим публикации «Автономное приложение» и среду выполнения linux-x64

dotnet_publish_1.png

3) Создание сайта в личном кабинете.
При создании сайта в качестве конфигурации выберите “C#” + нужный тип базы данных:

4) Загрузка файлов на хостинг
Подключитесь к хостингу по SFTP или FTP (например, с помощью FileZilla) и загрузите все файлы из папки ~\bin\release\net8.0\publish\ в каталог ~/sitename.ru/app/.

5) Настройка переменных окружения
В личном кабинете перейдите к созданному сайту, откройте вкладку «C#» и в переменной APP_PATH укажите полный путь до исполняемого файла. Например /home/cXXXX/sitename.ru/app/WebApi.
Вместо cXXXX укажите ваш контейнер. Он написан в начале переменной PATH

Убедитесь, что в файле appsettings.json параметры Url в разделе Kestrel корректно используют IP-адрес и порт, указанные в переменных окружениях хостинга APP_IP и APP_PORT. Итоговый файл appsettings.json должен выглядеть так:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "sitename.ru",
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://127.0.4.59:52261"
      }
    }
  }
}

Готово! Ваш проект запущен на услуге «Хостинг».

Если А-записи в настройках DNS уже вступили в силу, то сайт будет доступен по своему доменному имени. Так же не забудьте подключить SSL-сертификат для безопасности.

Особенности

Поскольку на услуге «Хостинг» MySQL работает через Unix-сокет, в строке подключения базы данных в файле appsettings.json необходимо указать путь к этому сокету.

 "ConnectionStrings": {
    "DefaultConnection": "Server=/run/mysqld/mysqld.sock;Database=name;User=name;Password=passwd;ConnectionProtocol=UnixSocket;"
  }
Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
Заказать

Нам доверяют тысячи компаний и разработчиков

22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
ВК49865