Развертывание ASP.NET Ошибка 500 Core API в локальном IIS

#c# #visual-studio #api #asp.net-core #iis

#c# #visual-studio #API #asp.net-core #iis

Вопрос:

У меня возникли проблемы с моим приложением после развертывания в моем локальном IIS. Я создал API, используя ASP.NET Core и я запустили его в Visual Studio, и это сработало. Он может выполнять запросы GET, POST, PUT и DELETE. Затем я хотел развернуть его в своем локальном IIS. Я включил свои функции IIS.
введите описание изображения здесь
И я следовал этому руководству:https://www.youtube.com/watch?v=ZG-6z4BQmRIamp;ab_channel=AspTricks.net
Когда я запускаю приложение, оно может запускать приложение WeatherForecast по умолчанию.
введите описание изображения здесь
Но когда я запускаю свой API, он выдает ошибку 500.
введите описание изображения здесь
Я прочитал документацию Microsoft и другие руководства и все еще не работает. Я думаю, что это не работает, потому что потеряно соединение с базой данных, я использую SQL Server для базы данных.
Это структура моего проекта.
введите описание изображения здесь
Побочный вопрос, как мне удалить приложение WeatherForecast по умолчанию, чтобы оно не запускалось по умолчанию. Спасибо

Ответ №1:

Я не могу помочь вам решить вашу проблему, поскольку у меня недостаточно информации, но я могу помочь вам ее отладить. Ваша цель должна состоять в том, чтобы найти то исключение, которое приводит к тому, что ваш API выдает ошибку 500. Потеря подключения к базе данных вполне может быть причиной.

1-й позвольте мне ответить на ваш второй вопрос. Чтобы удалить прогноз погоды, просто щелкните правой кнопкой мыши и удалите:

  1. WeatherForecast.cs
  2. WeatherForecastController.cs
  3. Любое упоминание о тех 2, которые нарушают вашу сборку после этого.

Устранение неполадок в Windows и IIS

Средство просмотра событий

Здесь для вас два варианта. Первый — проверить средство просмотра событий в папке приложения

Вот как:http://www.devtopics.com/how-to-check-the-application-event-log-for-errors /

Локальная отладка

Существует возможность отладки вашего приложения в вашем локальном iis, как если бы вы запускали его через свою IDE. Проверьте, как здесь: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/development-time-iis-support?view=aspnetcore-3.1

Комментарии:

1. Привет @AthanasiosKataras, я мог бы предоставить вам что-нибудь, чтобы помочь мне?

2. Само исключение с сообщением было бы полезно.

3. Я нашел это в средстве просмотра событий: Microsoft.Data.SqlClient.SQLException (0x80131904): не удалось войти в систему для пользователя ‘IIS APPPOOL TestAPI’.

4. Привет, с этим разобрались. Теперь новая ошибка, но все еще 500: Microsoft.Data.SqlClient.SQLException (0x80131904): не удается открыть базу данных «TestDb», запрошенную при входе в систему. Не удалось войти в систему. Не удалось войти в систему для пользователя ‘NT AUTHORITY SYSTEM’.

5. Вам необходимо добавить соответствующего пользователя в пул приложений. Или используйте учетные данные базы данных в вашем файле конфигурации