Ошибка Azure WebApp Asp.NET Core 2: при запуске приложения возникла ошибка

Я обновил asp.net core 1.1 до asp.net core 2. Он отлично работает на локальном сервере, но когда я пытаюсь развернуть его в размещенном в Azure веб-приложении, я получил сообщение об ошибке:

Произошла ошибка при запуске приложения. .NET Core

4.6.00001.0 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting версия 2.0.0-rtm-26452 | Microsoft Windows 6.2.9200

enter image description here

Есть идеи?

Ответ 1

Мне удалось решить проблему самостоятельно, и я надеюсь, что это решение может помочь кому-то.

Сначала я установил папку журнала на сервере Azure и нашел проблему с более подробной информацией. Я забыл некоторые изменения базы данных в изменениях базы данных SQL.Update и теперь работает нормально.

Ответ 2

Пожалуйста, добавьте ASPNETCORE_DETAILEDERRORS = true в настройках приложения, перезапустите его и увидите подробную ошибку при следующей загрузке URL. Это поможет вам это исправить.

Например, ошибка в моем случае заключалась в том, что у меня не было настроенной управляемой идентичности моего приложения API, настроенной для доступа к хранилищу ключей, чтобы получить учетную запись хранения и ключи Cosmos DB. Я использовал запуск, чтобы внедрить сконфигурированные объекты хранилища и космические базы данных, поэтому он не работал в тот момент, когда я запускал свое приложение.

Ответ 3

Получил мои подсказки от https://scottsauber.com/2017/04/10/how-to-troubleshoot-an-error-occurred- while-starting- the-application-in- asp- net-core-on- iis/

  1. Откройте ваш web.config
  2. Изменить stdoutLogEnabled = true
  3. Создание папки журналов. К сожалению, AspNetCoreModule по умолчанию не создает папку для вас. Если вы забудете создать папку журналов, в программу просмотра событий будет записано сообщение об ошибке: Предупреждение: Не удалось создать stdoutLogFile \?\YourPath\logs\stdout_timestamp.log, ErrorCode = -2147024893. Часть stdout значения. \Logs\stdout фактически ссылается на имя файла, а не на папку. Что немного сбивает с толку. Запустите ваш запрос еще раз, затем откройте файл \logs\stdout _ *. Log

Примечание. Вы захотите отключить эту функцию после устранения неполадок, поскольку это снижает производительность.

Так что ваш элемент web.configs aspNetCore должен выглядеть примерно так

Ответ 4

Мне удалось обнаружить мои исключения для этой ошибки, запустив приложение из опубликованного исполняемого файла.

Чтобы попробовать это локально, вы можете щелкнуть правой кнопкой мыши веб-проект, нажать "Опубликовать", а затем опубликовать его в папке. В папке с тем же именем, что и у проекта, должен быть исполняемый файл. Запустите это, и оно должно показать исключения в консоли.

Ответ 5

Вы можете получить более подробную информацию, включив ASPNETCORE_DETAILEDERRORS = true:

перейдите на панель инструментов Azure → Служба приложений

В настройках вашего приложения (в левой боковой панели) → прокрутите вниз до конфигурации, которая является парой настроек ключ-значение, введите вышеуказанное. Перезапустите ваше веб-приложение.

Ответ 6

Включите DetailedErrorsKey в Program.cs чтобы вы могли понять, что происходит.

WebHost.CreateDefaultBuilder(args)
    .UseSetting(WebHostDefaults.DetailedErrorsKey, "true")