Веб-сайт ASP.NET Core в Azure не запускается с ошибкой 502,5 после обновления с .NET Core 1.1.1 до .NET Core 1.1.2

У меня есть веб-приложение .NET Core, которое я развертываю как Azure Web App.

Это работает отлично до прошлой ночи, когда я применил обновление Visual Studio 2017 (v15.2).

Версия ядра .net была обновлена ​​с 1.1.1 до 1.1.2. Когда я развертываю Azure, веб-сайт не запускается с ошибкой 502.5.

После исследования я вижу, что .NET Core 1.1.2 не развертывается с изображением Azure.

Я не могу установить новую фреймворк в экземпляр веб-приложения (понятно, что разрешение запрещено в каталоге Program Files). Я не могу "понизить" через менеджер пакетов nuget, поскольку он сообщает, что версия "Blocked by the project". Я не вижу способа определить версию Microsoft.NETCore.App в файле csproj, так как кажется, что это "автоматически" управляется элементом root <Project Sdk="Microsoft.NET.Sdk.Web">.

Я попытался выполнить автономное развертывание (отправка рамки с помощью веб-приложения), но не может заставить это работать.

Не дожидаясь, пока новая версия будет развернута до Azure (я не могу найти какую-либо информацию о их расписании), есть ли у кого-нибудь идеи о том, как снова заставить веб-приложение работать?

Есть ли способ заставить его работать под 1.1.1?

Ответ 1

Обновление 5/12/2017: мы ускорили развертывание 1.1.2 и 1.0.5 до App Service, и теперь оно завершено. Поэтому обходной путь ниже никому не нужен.

Исходное решение

Лучшим обходным решением является установка этого в файле .csproj:

<TargetFramework>netcoreapp1.1.1</TargetFramework>

Вместо него установлено значение netcoreapp1.1. У нас будет 1.1.2 развернуто до Azure App Service к вторнику, после чего обходной путь не понадобится.

Обратите внимание, что если вы установили его в netcoreapp1.1.1, после того, как будет доступен 1.1.2, он будет автоматически перекачиваться вперед. Поэтому установка netcoreapp1.1.1 не заставит вас "застрять" на этой версии. Это верно, если вы используете портативный режим (т.е. Полагаетесь на фреймворк, который находится в ОС). Если вы используете автономный интерфейс и развертываете свою собственную инфраструктуру, тогда вы будете придерживаться ее (но тогда у вас не было бы этой проблемы в первую очередь и не нужно было бы это делать!).

Ответ 2

У нас такая же проблема после обновления Visual Studio 2017.

Обходной путь заключается в редактировании web.config для вашего сайта в Kudu после его развертывания.

Добавьте --fx-version 1.1.1 в начало значения аргументов для записи aspNetCore в разделе system.webServer

например <aspNetCore processPath="%LAUNCHER_PATH%" arguments="--fx-version 1.1.1 PATH_TO_DLL" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

Ответ 3

Пока они не начнут развертывать 1.1.2 для изображений веб-приложений, мне удалось это исправить, заставив проект ссылаться на Microsoft.NETCore.App 1.1.1

Отредактируйте файл csproj:

<ItemGroup> <PackageReference Update="Microsoft.NETCore.App" Version="1.1.1" /> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> ... etc