standard - http error 502.5-process failure asp.net core 2.0 iis
La aplicaciĆ³n.NET Core no puede iniciarse en IIS debido a ErrorCode=''0x80004005: 80008083 (11)
Tengo una aplicación .NET Core.
Se ejecuta localmente con VS2017 y Kestrel.
Se ejecuta localmente bajo IIS.
Sin embargo, en el servidor no puede comenzar con un
502.5 - Process Failure
.
En los registros de eventos obtengo más detalles:
La aplicación ''...'' con la raíz física ''C: ... / my-app-folder /' no pudo iniciar el proceso con la línea de comandos ''"dotnet". / MyApp.dll'', ErrorCode = ''0x80004005: 80008083.
Las versiones anteriores de la aplicación funcionan bien en el mismo servidor, la única diferencia es que se publicaron con VS2017RC (2 y 3) y esta es la primera versión con el VS2017 completamente lanzado.
¿Qué significa
ErrorCode = ''0x80004005 : 80008083.
?
¿Cómo lo soluciono?
Código de error:
0x80004005
significa que falta un archivo o no se puede acceder a él.
80008083
:
80008083
parece ser un conflicto de versión.
Este error significa que se debe instalar una versión diferente de dotnet en el servidor.
Como VS2017 RC se entrega con la nueva versión de .NET Core SDK ( .NET Core 1.0.4 SDK 1.0.1 ), también debe actualizar el marco en el servidor.
Estoy ejecutando en IIS y tuve el error 0x80004005: 0, que encontré en el Visor de eventos -> Registros de aplicaciones. Fue causado porque mi grupo de aplicaciones no tenía acceso a la ubicación de la carpeta del sitio web.
Lo resolví cambiando la identidad del grupo de aplicaciones a una con acceso a la carpeta.
Había publicado una nueva aplicación web .NET Core 2.0 para Azure App Service y recibí este error.
Golpeando el sitio:
Error HTTP 502.5 - Falla del proceso Causas comunes de este problema: El proceso de la aplicación no pudo iniciarse. El proceso de la aplicación comenzó pero luego se detuvo.
Depuración: Uso de Azure Application Insights y el Servicio de aplicaciones - Herramientas avanzadas (KUDU) mirando las Herramientas - Consola de depuración - Explorando la carpeta LogFiles eventlog.xml tenía una fila de registro:
La aplicación ''MACHINE / WEBROOT / APPHOST / xxxx'' con la raíz física ''D: / home / site / wwwroot /' no pudo iniciar el proceso con la línea de comandos ''dotnet. / WebApp.dll'', ErrorCode = ''0x80004005: 8000808c.
<Provider Name="IIS AspNetCore Module"/>
<EventID>1000</EventID>
<Level>1</Level>
<Task>0</Task>
<EventData>
<Data>Application ''MACHINE/WEBROOT/APPHOST/xxxx'' with physical root ''D:/home/site/wwwroot/' failed to start process with commandline ''dotnet ./WebApp.dll'', ErrorCode = ''0x80004005 : 8000808c.</Data>
</EventData>
</Event>
Solución
Esta respuesta: Eliminar la carpeta wwwroot en azul y publicar de nuevo desde VS, funcionó para mí a pesar de no tener una aplicación Core 1.1 heredada inicialmente .
Inicie Azure Console dentro de la aplicación y elimine el contenido de la carpeta wwwroot y luego vuelva a implementar.
RMDIR wwwroot /S /Q
Pruebas adicionales A continuación, esto fue muy útil para las pruebas y funciona cuando se sigue de forma idéntica, luego se desvía, sin embargo, necesita encontrar errores. https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs
Me enfrenté al mismo problema y solo tenía instalado dotnet cor 2 en mi servidor, por lo que al instalar este enlace puede ejecutar su código en otras versiones de dot net core. No olvide reiniciar IIS. https://download.microsoft.com/download/6/A/2/6A21C555-B042-46EA-BBB4-368AACCB3E25/DotNetCore.1.0.8_1.1.5-WindowsHosting.exe
Para .net core 2.0
- Verifique que DotNetCore.2.0.Y-WindowsHosting esté instalado. Si su proyecto es 2.1, instale 2.1. en consecuencia)
- Se requiere un reinicio de la computadora después de instalar Windows Hosting.
-
PowerShell abierto;
cd directorio_instalación;
dotnet abcd.dll
Este es un control previo que puede verificar después de instalar WindowsHosting ...
Para mí, tenía que asegurarme de tener instalado el último .Net Core Runtime y Windows Hosting Module, todos los cuales están disponibles en https://www.microsoft.com/net/download/windows (las versiones más recientes siempre deben estar disponibles aquí )
Específicamente, instalé:
- .Net Core Runtime - https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-x64-installer
- Windows Server Hosting Runtime: https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.0.5-windows-windows-server-hosting-installer
- .Net Framework 4.7.1 Runtime - https://www.microsoft.com/net/download/thank-you/net471
Es posible que el tiempo de ejecución completo de .Net Framework 4.7.1 no sea necesario si realmente solo aloja aplicaciones .Net Core en su servidor, pero lo instalé para que sea seguro.
También tuve este problema y pensé en publicar mi solución. No estoy seguro de si esto está destinado o no, pero no creo que dotnet core 2 admita caracteres de espacio en el nombre de su proyecto.
Creé y publiqué un proyecto llamado "Aplicación Mikes" y cuando intentaba ejecutar el sitio con IIS recibía este error (la aplicación .NET Core no puede iniciarse en IIS debido a ErrorCode = ''0x80004005''). Cuando habilité stdoutLogs a través del archivo web.config, encontré el error:
No se encontró ningún ejecutable que coincida con el comando "dotnet -. / Mikes"
Lo que me pareció extraño porque el archivo web.config mostró correctamente la ruta dll bajo argumentos que era ". / Mikes App.dll"
<aspNetCore processPath="dotnet" arguments="./Mikes App.dll" stdoutLogEnabled="true" stdoutLogFile="./logs/stdout" />
Creé un nuevo proyecto dotnet core 2 en Visual Studio y en su lugar lo llamé "Mikes-App", lo volví a publicar y actualicé el directorio en mi sitio IIS.
¡Entonces el sitio funcionó bien!
Todo lo que tuve que hacer para corregir este error fue reiniciar mi computadora de desarrollo y recompilar y volver a publicar el sitio. VS no estaba respondiendo correctamente.
Una posible solución que funcionó para mí es que agregué esto a mi perfil de publicación en Visual Studio:
<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>
Creo que esto hará que el host use los archivos necesarios para ejecutar la aplicación en lugar de depender de las especificaciones establecidas en un manifiesto de destino que podría estar equivocado (el tiempo de ejecución / sdk en el servidor o su local está en conflicto con estas especificaciones).