Asp.Net Core 2.0 en Azure da como resultado un 502.5
asp.net-core asp.net-core-2.0 (8)
Tengo una pequeña aplicación web desarrollada con Asp.Net Core 1.1 implementada en Azure y funciona bien. Acabo de migrar el proyecto para usar Asp.Net Core 2.0 e intenté implementarlo en Azure. El despliegue fue bien pero cuando abro el sitio, recibo un error 502.5. Cuando reviso mi secuencia de registro de Azure, aparece el siguiente error:
Este error ocurre cuando una aplicación CGI no devuelve un conjunto válido de encabezados HTTP, o cuando un proxy o puerta de enlace no puede enviar la solicitud a una puerta de enlace principal. Es posible que necesite obtener un rastreo de red o ponerse en contacto con el administrador del servidor proxy, si no es un problema CGI.
Inútil decir que funciona bien en mi máquina de desarrollo con el mismo código. Tenga en cuenta que también estoy utilizando Entity Framework Core 2.0, aunque desactivé la creación de la base de datos en Azure (para comprobar si no era la causa).
Para obtener información, la forma en que migré de 1.1 a 2.0 es cambiando la configuración del marco de destino a "netcoreapp2.0" y utilizando el paquete NuGet "Microsoft.AspNetCore.All". Solo para estar seguro, también borré mi perfil de publicación y recreé uno.
¿Es posible que Asp.Net Core 2.0 aún no esté disponible en Azure? Soy bastante nuevo en Asp.Net Core, por lo que no sé cuándo estarán disponibles nuevos lanzamientos en Azure.
EDITAR
Cuando trato de ejecutar mi aplicación con dot net CLI a través de la consola de depuración propuesta por natemcmaster, recibí el siguiente problema:
Excepción no controlada: System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado ''Microsoft.AspNetCore.Hosting.Abstractions, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = adb9793829ddae60''. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)
Descargué la DLL en mi escritorio y compruebo la versión con Dot Net Peak y, de hecho, la DLL es 1.1.2, aunque creé el proyecto con Visual Studio y lo publiqué directamente, ¿es un problema con Visual Studio? ¿O Nuget?
Consulte https://github.com/Azure/app-service-announcements/issues/14 "Se espera que la implementación finalice antes del viernes 30 de junio".
En mi caso, el problema ocurrió porque AppService en ese momento era compatible con 2.0.0-preview2-006497 pero tenía 2.0.0-preview3-006890 instalado, que se usaba en build. Así que agregué global.json
para usar preview 2 SDK y funcionó entonces
En mi caso, fue causado por tener un espacio en el Nombre del proyecto.
- Puedo agregar fácilmente un espacio, publicar => 502.5.
- Eliminar espacio, publicar => bueno para ir.
Difícil de creer, pero lo estoy duplicando fácilmente con lo de arriba.
También usa "Eliminar archivos adicionales en el destino" por @ Sam''s Answer
Esto sucede cuando su versión de ASP.NET Core no puede coincidir en el servidor.
La solución más simple es cambiar la configuración para desplegar la aplicación como autónoma, por lo que no importa si Azure puede coincidir con la versión de framework. Además, elimine los archivos que ya están en Azure, para que no tenga problemas al realizar la actualización, como se explica en @Sam .
No sé si esto podría ayudar a alguien algún día, pero en mi caso, estaba usando: -Microsoft.AspNetCore.All 2.0.5
Downdrage to Microsoft.AspNetCore.All 2.0.3 resolver mi problema
el problema en realidad provenía del hecho de que, al principio, mi aplicación web usaba .net core 1.1, que despliega toda la DLL en la carpeta "wwwroot" de la aplicación web. Sin embargo, con asp.net core 2.0, ya no funciona, ya que la DLL se recoge en una tienda global. Sin embargo, como Visual Studio no limpia la carpeta de destino antes de una publicación, terminé con una situación en la que el archivo DLL 1.1 estaba en mi wwwroot, por lo que el sitio web los recogió en lugar de los 2.0 en la carpeta de la tienda.
Esto se explica con más detalle aquí: https://github.com/Azure/app-service-announcements-discussions/issues/2#issuecomment-313816550
Compruebe si hay archivos de registro en el portal o accediendo de forma remota a D:/home/LogFiles
.
A veces, los registros no indican qué está pasando mal. Otra buena forma de investigar más es intentar iniciar su aplicación ASP.NET Core desde Debug Console. Si falta una versión de marco compartido o si hay otro error de inicio, esto será más visible desde la consola de depuración.
Ir
https://(your web site name here).scm.azurewebsites.net/DebugConsole/
Su sitio estará en D:/home/site/wwwroot
. Puede ejecutarlo ejecutando:
cd D:/home/site/wwwroot
dotnet MyWebApp.dll
Si su aplicación todavía no se inicia, asegúrese de que D:/home/site/wwwroot/web.config
esté disponible y configurado para usar ASP.NET Core Module. https://docs.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module