Приложение ASP.NET Core 2.1 Preview 2 не работает с Azure App Service
Я запускал приложение ASP.NET Core 2.1 Preview-1 на Azure, так как этот выпуск стал доступен. Я установил расширения среды выполнения ASP.NET Core через портал, и он работает нормально.
Теперь, когда Microsoft выпустила ASP.NET Core 2.1 Preview-2, я установил обновление в SDK. Обновил мои пакеты Nuget, чтобы у меня были версии для предварительного просмотра 2. Посмотрите мой файл csproj ниже:
Я также удалил расширения ASP.NET Core Runtime из Azure App Service для моего приложения, которое показывало 2.1 Preview-1. Вместо этого устанавливаются время запуска ASP.NET Core 2.1 для x86 и x64 отдельно - см. Ниже:
Составил приложение и опубликовал его в моем приложении Azure App, но я получаю ошибки. Сначала я получил ошибку 502.5. Теперь я получаю:
Указанное приложение CGI обнаружило ошибку, и сервер завершил процесс.
Что мне здесь не хватает?
ОБНОВИТЬ:
Как я уже сказал, я поставил свою цель на x86 (чтобы играть в нее безопасно) - см. Ниже:
Я удалил расширение и отдельные времена работы x86 и x64 и установил только x86 с поддержкой ASP.NET Core 2.1 preview-2 - см. Ниже:
Я перезапустил приложение несколько раз, и я все еще получаю 502,5.
Затем я попытался выполнить само развертывание через командную строку CLI, выпустив следующую команду:
dotnet publish -c Release -r win10-x64
И я получаю следующую ошибку:
C:\Program Files\dotnet\sdk\2.1.300-preview2-008530\Sdks\Microsoft.NET.Sdk\target\Microsoft.NET.RuntimeIdentifierInference.targets(125,5): ошибка: платформа RuntimeIdentifier 'win10-x64 'и PlatformTarget' x86 'должны быть совместимы.
Означает ли это, что у меня установлена версия SDK на x86, и я должен нацелиться на x86?
У меня не было половины проблемы, с которой я сейчас перехожу от ASP.NET Core 2.0 до 2.1 !!!!
ОБНОВЛЕНИЕ 2: Просто запущен dotnet --info
в консоли dotnet --info
. Если я правильно это прочитаю, у меня нет правильного времени выполнения.
Обновление 3:
Я думаю, что этот снимок экрана подтверждает то, что я говорил.
Обновление 4:
Я установил x86 версию ASP.NET Core 2.1 Runtime - см. Ниже:
Когда я запускаю dotnet --info
в консоли dotnet --info
, я получаю следующее, что меня смущает. Я все еще не вижу версию, которую я ожидал увидеть:
И когда я ударил URL-адрес, я все равно получаю 502.5 и такое же сообщение в консоли dotnet MyApp.dll
когда я запускаю dotnet MyApp.dll
сообщая мне, что правильная версия среды выполнения не найдена.
Как я получу правильную версию там? Я думал, что установка его через портал сделает это.
Ответы
Ответ 1
Нам удалось опубликовать веб-приложение ASP.NET Core 2.1 RC1 для приложения-приложения Azure с использованием "автономного" режима развертывания.
Платформа: любой процессор
Вот ссылки на пакеты из нашего.csproj:
<PackageReference Include="Microsoft.AspNetCore.App"/> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-rc1-final" PrivateAssets="All"/> <PackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="2.1.0-rc1-final"/>
Ответ 2
Шаги, которые я предпринял, чтобы заставить это работать:
- Удалите расширение 2.1-preview1 ASP.NET Core Runtime Extension.
- Проверьте настройки приложения, чтобы убедиться, что вы работаете в бит 32- или 64-бит.
- Установите только совместимый (32- или 64-разрядный) ASP.NET Core 2.1 Runtime.
- Перезапустите веб-приложение.
Перезагрузка важна - перед перезапуском инструментов.NET Core были неправильной версией, и я также получил бы ошибки 502.5.
Поскольку вы установили как 32-, так и 64-битные среды выполнения, я попытался бы удалить тот, который не требуется вашему приложению, и перезапустить веб-приложение.
Ответ 3
Я получил свой проект, работая над asp.net core 2.1 Preview 2 на Azure. Я сделал следующие шаги;
- Удалено старое расширение ядра asp.net из службы приложений Azure. Расширение
- Использование kudus удалило все файлы в папке wwwroot сайта.
-
Установленное расширение основного сайта asp.net от Azure, как показано на рисунке ниже, и перезапустило службу приложения
- Перед развертыванием в Azure используется используемая опция публикации, как показано на рисунке ниже,
Это.
Ответ 4
Попробуйте добавить файл global.json
в папку проекта с этим контентом:
{
"sdk": {
"version": "2.1.300-preview2-008530"
}
}
Перезагрузите приложение после этого, чтобы быть в безопасности.
Ответ 5
Здесь единственное, что, похоже, сработало для меня.
Я сделал самостоятельное развертывание, используя
dotnet publish --self-contained -r win10-x64 -c Release
Затем мне пришлось выполнить ручное развертывание - в моем случае с использованием FTP.
Мне действительно хотелось бы, чтобы эта проблема была решена, но если она не будет решена при следующем развертывании, я сделаю развертывание zip. Поскольку у моего приложения есть интерфейс ReactJs
, было развернуто несколько тысяч файлов, и FTP был не очень забавным!
Поскольку этот подход не зависит от того, что установлено или не установлено в Azure App Service, это гораздо более прямое решение.
Я все еще хочу иметь возможность просто нажать "Опубликовать в Visual Studio"!
ОБНОВЛЕНИЕ: я просто сделал развертывание zip, и я все еще получаю ошибки, которые я получал до того, что развертывание zip было успешным. Итак, что-то еще не так!
Ответ 6
У меня такая же проблема. Наконец через 2 часа я исправил это.
Вот моя конфигурация:
Расширения:
Консоль dotnet --info:
Консоль kudu dotnet --version команда:
a) Не забудьте перезапустить приложение после установки расширения.
b) Очистите папку wwwroot от старых файлов и опубликуйте снова.
Ответ 7
У меня возникла проблема со сложным веб-сайтом, поэтому я создал простую версию, только с файлом приложения, установленным в той же версии:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.3" />
</ItemGroup>
а затем, взятый из примера Тима Дикманна, я ничего не делал, кроме изменения режима развертывания в настройках публикации публикации Azure на Self-Contained - и это сработало.