Как перенести сайт, созданный с использованием ASP.NET Core 5, на другой хостинг без использования Visual Studio?

Как я могу решить проблему "HTTP Error 500.31 - Failed to load ASP.NET Core runtime", связанную с переносом сайта на другой хостинг в IIS и установкой .NET 5? Как я могу проверить логи ошибки и устранить возможные причины проблемы?
  • 13 января 2024 г. 14:27
Ответы на вопрос 2
Для переноса сайта, созданного с использованием ASP.NET Core 5, на другой хостинг без использования Visual Studio, вам следует выполнить следующие шаги:

1. Публикация приложения:
    - Если у вас есть доступ к командной строке, вы можете использовать утилиту `dotnet` для публикации приложения. Откройте командную строку (или терминал) в корневой папке вашего проекта и запустите следующую команду:
      ```
      dotnet publish --configuration Release
      ```
    - Это создаст папку `publish` в директории `bin\Release\net5.0\publish` внутри вашего проекта.

2. Перенос файлов:
    - Перенесите содержимое папки `publish` на целевой хостинг через FTP, SFTP или любой другой доступный способ.

3. Настройка IIS:
    - Удостоверьтесь, что на целевом сервере установлен нужный Runtime для ASP.NET Core 5. Если не установлен, скачайте и установите его с официального сайта Microsoft.
    - Настройте IIS для хостинга вашего приложения, создав новый сайт или воспользовавшись существующим. Вам нужно будет указать путь к папке публикации вашего приложения и создать пул приложений с настройками для .NET Core.
    - В пуле приложений выберете «Без управляемого кода».
    - В настройках сайта установите "http" протокол и порт (обычно 80).

4. Разрешения:
    - Убедитесь, что у аккаунта, под которым работает IIS (обычно IIS_IUSRS и IUSR), есть права на чтение и выполнение файлов в папке приложения.

Решение проблемы "HTTP Error 500.31 - Failed to load ASP.NET Core runtime":

1. Проверьте логи:
    - По умолчанию IIS хранит логи по пути `C:\inetpub\logs\LogFiles`.
    - Логи приложения ASP.NET Core могут быть настроены для записи в папку `logs` в директории приложения или в другое место, указанное в конфигурации.

2. Убедитесь в наличии необходимых компонентов:
    - Проверьте, что .NET Core Hosting Bundle установлен на сервере. Если нет, установите соответствующую версию с сайта Microsoft.

3. Проверьте `web.config`:
    - Файл `web.config` автоматически создается во время публикации приложения. Он должен соответствовать версии вашего приложения и IIS настройкам. Убедитесь, что файл `web.config` не был изменен и содержит корректные настройки.

4. Изучите детали ошибки:
    - Включите подробные сообщения об ошибке в конфигурационном файле (`web.config`) и в `appsettings.json`.
      ```
      <system.webServer>
        <httpErrors errorMode="Detailed" />
      </system.webServer>
      ```
    - Также установите уровень логирования на "Debug" или "Trace" для получения более подробной информации о возникающих ошибках.

5. Проверьте настройки приложения на IIS:
    - Убедитесь, что пул приложений настроен правильно, и в качестве .NET CLR версии выбрано значение "No Managed Code". 

Если приведенные выше шаги не помогли решить проблему, детальное исследов
Для запуска проекта ASP.NET Core 5 нужно установить также Hosting Bundle.
Похожие вопросы