Подтвердить что ты не робот

Asp.Net Core 2.0 на Azure дает 502,5

У меня есть небольшое веб-приложение, разработанное с Asp.Net Core 1.1, развернутое на Azure, и оно работает хорошо. Я просто перенес проект, чтобы использовать Asp.Net Core 2.0 и попытался развернуть его на Azure. Развертывание было прекрасным, но когда я открываю сайт, я получаю ошибку 502.5. Когда я проверяю поток журнала Azure, я получаю следующую ошибку:

Эта ошибка возникает, когда приложение CGI не возвращает действительный набор заголовков HTTP или когда прокси или шлюз не смогли отправить запрос к родительскому шлюзу. Возможно, вам понадобится трассировка сети или обратитесь к администратору прокси-сервера, если это не проблема CGI.

Бесполезно говорить, что он хорошо работает на моей машине разработки с тем же кодом. Обратите внимание, что я также использую Entity Framework Core 2.0, хотя я дезактивировал создание базы данных на Azure (чтобы проверить, не является ли это причиной).

Информацию о том, как я перешел с 1.1 на 2.0, - это изменение параметров целевой инфраструктуры на "netcoreapp2.0" и использование пакета NuGet "Microsoft.AspNetCore.All". Чтобы быть уверенным, я также удалил свой публичный профиль и заново создаю его.

Возможно ли, что Asp.Net Core 2.0 еще не доступен на Azure? Я новичок в Asp.Net Core, поэтому я не знаю, когда новые версии доступны на Azure.

ИЗМЕНИТЬ

Когда я пытаюсь запустить мое приложение с помощью NET CLI через консоль отладки, как было предложено natemcmaster, у меня возникла следующая проблема:

Необработанное исключение: System.IO.FileLoadException: не удалось загрузить файл или сборку "Microsoft.AspNetCore.Hosting.Abstractions, Версия = 2.0.0.0, Культура = нейтраль, PublicKeyToken = adb9793829ddae60 '. Установленное определение манифеста сборки не соответствует сборке Справка. (Исключение из HRESULT: 0x80131040)

Я загрузил DLL на свой рабочий стол и проверил версию с Dot Net Peak, и, действительно, DLL - это 1.1.2, хотя я создал проект с Visual Studio и сразу публиковал его, так это проблема с Visual Studio? Или Нугет?

4b9b3361

Ответ 1

проблема на самом деле исходила из того факта, что сначала мое веб-приложение использовало .net core 1.1, которое развертывает всю DLL в папке "wwwroot" веб-приложения. Однако, с asp.net core 2.0, он больше не делает этого, поскольку DLL выбраны из глобального хранилища. Однако, поскольку Visual Studio не очищает папку назначения до публикации, я столкнулся с ситуацией, когда 1.1 DLL была в моем wwwroot, поэтому веб-сайт собирал эти, а не 2.0 в папке магазина.

Это объясняется более подробно здесь: https://github.com/Azure/app-service-announcements-discussions/issues/2#issuecomment-313816550

Ответ 2

Другие объяснили причину, по которой это происходит. Я хотел бы предложить другое - возможно более простое - решение проблемы.

Просто измените настройки, чтобы удалить файлы, которые уже находятся на Azure - см. ниже:

введите описание изображения здесь

введите описание изображения здесь

Ответ 3

Проверьте файлы журналов либо на портале, либо удаленно получив доступ к D:\home\LogFiles.

Иногда журналы не указывают, что происходит не так. Еще один хороший способ исследовать дальше - попробовать запустить приложение ASP.NET Core из консоли Debug. Если вам не хватает общей версии фреймворка или есть другая ошибка при запуске, это будет более заметным из консоли Debug.

Перейдите к

https://(your web site name here).scm.azurewebsites.net/DebugConsole/

Ваш сайт будет находиться в D:\home\site\wwwroot. Вы можете запустить его, выполнив:

cd D:\home\site\wwwroot
dotnet MyWebApp.dll

Если приложение все еще не запускается, убедитесь, что D:\home\site\wwwroot\web.config доступен и настроен для использования базового модуля ASP.NET. https://docs.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module

Ответ 5

В моем случае проблема возникла из-за того, что AppService в то время поддерживал 2.0.0-preview2-006497, но у меня был установлен 2.0.0-preview3-006890, который использовался при сборке. Поэтому я добавил global.json для использования предварительного просмотра SDK, и он работал тогда

Ответ 6

В моем случае это было вызвано наличием пробела в имени проекта.

  • Я могу легко добавить пробел, publish = > 502.5.
  • Удалить место, опубликовать = > хорошо.

Трудно поверить, но я легко копирую его с помощью выше.

Также использование "Удалить дополнительные файлы в месте назначения" за @Sam Отвечать

Ответ 7

Я не знаю, помогло ли это кому-нибудь однажды, но в моем случае я использовал: -Microsoft.AspNetCore.All 2.0.5

Переход к Microsoft.AspNetCore.All 2.0.3 разрешает мою проблему