Acabo de actualizar mi servidor (Windows 2012R2) al .Net Core 1.0 RTM
paquete de alojamiento de Windows del anterior .Net Core 1.0 RC2
. Mi aplicación funciona en mi PC sin ningún problema, pero el servidor sigue mostrando:
HTTP Error 502.5 - Process Failure
Common causes of this issue:
The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port
Anteriormente trabajó con la versión RC2. No sé qué podría salir mal.
Esto es todo lo que el visor de eventos dice:
Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.
¡la peor parte es que los registros de aplicaciones están vacíos! Me refiero a que esos archivos stdout_xxxxxxxxx.log están completamente vacíos y todos tienen un tamaño de 0 bytes.
¿¿Qué tengo que hacer?? ¿Cómo puedo saber la causa del error si no está registrado?
c#
iis
asp.net-core
windows2012
Vahid Amiri
fuente
fuente
Failed to start process with commandline 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Error Code = '0x80004005'.
: la misma línea de comando y código de error que está informando. En segundo lugar, solo porque se ejecuta en su máquina, pero no en la máquina remota, indica que algo es diferente en el servidor. Si pudiera ampliar sobre cómo se implementa la aplicación en el servidor, sería útil.Respuestas:
Pude arreglarlo ejecutando
en el símbolo del sistema, lo que me dio un error mucho más significativo:
Como puede ver, tenía instalada la versión de NET Core incorrecta en mi servidor. Pude ejecutar mi aplicación después de desinstalar la versión anterior 1.0.0 e instalar la versión correcta 1.0.1.
fuente
Tuve el mismo problema, en mi caso fue un permiso insuficiente de la identidad de usuario de mi grupo de aplicaciones, en la publicación en la página IIS de asp.net doc, hay un par de razones para este error:
buildOptions
deproject.json
que los conflictos con el RID publicación. Por ejemplo, no especifique una plataforma de x86 y publique con un RID de win81-x64 (dotnet publish -c Release -r win81-x64
). El proyecto se publicará sin advertencias ni errores, pero fallará con las excepciones registradas anteriormente en el servidor.processPath
atributo en el<aspNetCore>
elemento en web.config para confirmar que esdotnet
para una aplicación portátil o. \ My_application.exe para una aplicación autónoma.dotnet.exe
posible que no se pueda acceder a través de la configuración de PATH. Confirme queC:\Program Files\dotnet\
existe en la configuración de PATH del sistema.dotnet.exe
posible que no sea accesible para la identidad de usuario del grupo de aplicaciones. Confirme que la identidad del usuario de AppPool tenga acceso alC:\Program Files\dotnet
directorio..UseIISIntegration()
método de la aplicaciónWebHostBuilder()
..UseUrls()
método de extensión cuando se autohospeda con Kestrel, confirme que esté colocado antes del.UseIISIntegration()
método de extensión enWebHostBuilder()
..UseIISIntegration()
debe establecer elUrl
para el proxy inverso al ejecutar Kestrel detrás de IIS y no tener su valor anulado por.UseUrls()
.En mi caso, fue la cuarta razón, la cambié haciendo clic con el botón derecho en mi grupo de aplicaciones, y en la configuración avanzada en Modelo de proceso, configuré la Identidad para un usuario con suficiente permiso:
fuente
Failed to start process with commandline '"dotnet" .\PROJECT.dll', ErrorCode = '0x80070002'
.dotnet
estaba en mi camino, pero requería reiniciar el servidor para que fuera reconocido.Conseguí que esto funcionara con un restablecimiento completo de IIS (acababa de instalar el paquete de alojamiento).
Resulta que simplemente presionar 'Reiniciar' en el Administrador de IIS no es suficiente. Solo tenía que abrir un símbolo del sistema y escribir 'iisreset'
fuente
LocalSystem
Así que obtuve un nuevo servidor, esta vez es Windows 2008R2 y mi aplicación funciona bien.
No puedo decir con certeza cuál fue el problema con el servidor anterior, pero tengo una idea.
Entonces, debido a que previamente compilé la aplicación sin ninguna plataforma en mente, me dio la
dll
versión que solo funciona si el host de destino tiene el.Net Core Windows Hosting
paquete instalado. En mi caso estaba instalado y estuvo bien .Después de que la aplicación no funcionó, decidí compilarla como una aplicación de consola con
win7-x64
tiempo de ejecución. Esta vez, en el momento en que ejecuté elexe
de mi aplicación en el servidor, se bloqueó con un error sobre una dll faltante:Ese dll es de Universal C Runtime que se incluye en Visual C ++ Redistributable para Visual Studio 2015 .
Intenté instalar ese paquete (tanto x64 como x86) pero falló cada vez (no sé por qué) en Windows Server 2012 R2.
Pero cuando intenté instalarlos en el nuevo servidor, Windows Server 2008 R2, se instalaron correctamente. Esa podría haber sido la razón detrás de esto, pero aún no puedo decirlo con certeza.
fuente
Tuve el mismo problema al publicar la aplicación web. Si alguien aún tiene este problema, lo solucionó cambiando {AppName} .runtimeconfig.json
Cambie la versión de "versión": "1.1.2" a "versión": "1.1.1" y todo funcionó bien
fuente
Yo tuve el mismo problema.
Para averiguar la fuente exacta, encendí el registro en el archivo web.config:
y creó la subcarpeta de registros en la carpeta raíz MyWebService.
Después de reiniciar IIS e intentar ejecutar la API, recibí un error y faltaba el Core Runtime adecuado. Después de descargar una instalación DotNetCore.1.0.5_1.1.2-WindowsHosting, el error desapareció.
fuente
Tuve el mismo problema y todas las soluciones no funcionaron. Encontré esta joya y pensé en pasarla si ayuda a alguien más. Instale en Server 2012 R2 y obtenga el error de DLL que falta, intente reinstalar VS C ++ 2015 y obtenga un error. La solución es hacer lo siguiente:
Parece que el archivo
C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu
tiene problemas para instalarse. Abra el símbolo del sistema de administración:NOTA: reemplace "..." con el nombre de carpeta correcto. Después de esto, reinstale el paquete VS C ++ 2015.
fuente
Tuve un problema similar, y para citar a Sherlock Holmes: " cuando has eliminado lo imposible, lo que queda, por improbable que sea, ¿debe ser la verdad? "
Verifiqué si el marco .NET al que me dirigía estaba instalado en el servidor y resultó que no lo estaba. Instalé 4.6.2 .NET Framework y funcionó.
fuente
Tuve este problema en mi servidor de producción después de que mi proyecto VS se actualizara automáticamente a .NET Core 1.1.2.
Simplemente instalé el tiempo de ejecución del núcleo 1.1.2 .net desde aquí en mi servidor de producción: https://www.microsoft.com/net/download/core#/runtime
fuente
SOLUCIONADO Acabo de resolver el mismo problema hoy mientras implementaba en AZURE . Luego intenté lo mismo para IIS local, obtuve el mismo problema. Como soy nuevo en .net CORE, luché unas horas antes de resolverlo.
En nuestra solución, después de publicar en IIS, observé mi archivo web.confile, especialmente debajo de la línea
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
En nuestra carpeta de implementación, el web.config generado se ve así:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
Ahora POR FAVOR intente cambiar la configuración anterior en la solución de Visual Studio a
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
En nuestra nueva carpeta de implementación, el archivo web.config generado se ve así:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
Y esto RESUELTO mi problema, espero que ayude.
fuente
processPath="dotnet"
aprocessPath="C:\Program Files\dotnet\dotnet.exe"
. luego funcionó.Tuve el mismo problema cuando actualicé mi máquina de desarrollo a Core 1.0.1, pero olvidé actualizar el servidor.
fuente
dotnet .\YOURPROJDLL.dll
Recibí el error HTTP 502.5 mientras intentaba publicar mi API .NET Core 2.0 en AWS EB, y lo resolví agregando el siguiente código al .csproj:
fuente
Tuve el mismo problema. Cambié la identidad del grupo de aplicaciones a la cuenta de servicio de red. Luego establecí explícitamente la ruta a dotnet.exe en web.config para que la aplicación funcione correctamente como dijo @danielyewright en su github comentario de . Funciona después de establecer el camino.
Gracias
fuente
Compartiendo que en mi caso, este error se debió a que olvidé actualizar project.json con:
fuente
Tuve el mismo error en cuestión, con los mismos problemas descritos por VSG24 en Respuesta propuesta: mensaje de error desagradable al escribir 'dotnet' en CMD:
Resolví esto instalando manualmente las siguientes 2 actualizaciones en Windows Server 2012 R2 (y los requisitos previos y todas las demás actualizaciones vinculadas; lea atentamente las instrucciones de instalación en el sitio web de Microsoft):
Espero que esto ayude a alguien.
fuente
Enfrenté el mismo problema cuando intenté publicar la versión de depuración de mi aplicación web. Este conjunto de archivos no contenía el archivo
web.config
con el valor adecuado de atributoprocessPath
.Tomé este archivo de la versión de lanzamiento, se asignó un valor a la ruta a mi archivo exe.
fuente
En mi caso, hubo un problema con la versión Net Core instalada en el servidor. Acabo de instalar la misma versión que en mi máquina de desarrollo y todo está bien :-)
fuente
Necesitaba instalar la última versión de .net Core que se encuentra aquí . No es necesario reiniciar el sitio o el servidor
fuente
Lo resolví agregando "permiso de edición" a la aplicación del sitio, lo asigné al directorio físico y luego seleccioné el usuario de Windows que podría tener acceso a esta carpeta raíz. (red privada).
fuente
En mi caso, después de instalar
AspNetCore.2.0.6.RuntimePackageStore_x64.exe
yDotNetCore.2.0.6-WindowsHosting.exe
, necesito reiniciar el servidor para que funcione sin 502 puerta de enlace incorrecta y error de proxy.ACTUALIZAR:
Hay una manera de usarlo sin reiniciar: https://stackoverflow.com/a/50808634/3634867
fuente
Abra el símbolo del sistema con credenciales de administrador
Escriba el siguiente comando y presione enter
O
Abra Visual Studio 2017 con credenciales de administrador
Escriba el siguiente comando en la Consola del Administrador de paquetes y presione enter
fuente
Para mí, fue causado por tener diferentes versiones de .Net Core instaladas. Coincidí con mi servidor de desarrollo y producción y funcionó.
fuente
También tuve este problema (el error se produjo tanto en VS 15 como en 17). Sin embargo, en VS15 devolvió un
CONNECTION_REFUSED
error y en VS17 volvióASP.NET Core 1.0 on IIS error 502.5
.REPARAR
Navegue al directorio de su proyecto y ubique la carpeta oculta
.vs
(se encuentra en el directorio de la carpeta de proyectos). (Recuerde mostrar archivos / carpetas ocultos)Cerrar VS
fuente
Esto es lo que pensé, y esto sucedió recientemente en Windows 10 después de que se instaló una actualización. Por lo que reuní, se instaló una actualización de Windows Defender que asumía que mi "Project.dll" (un proyecto principal de asp.net) se comportaba como un virus, por lo que se eliminó.
Entonces, una de las primeras cosas que le sugiero que haga antes de comenzar a instalar / desinstalar cosas es verificar para confirmar que su "Project.dll" está donde debería estar.
Cópielo de nuevo en la ubicación si ya no está allí.
Si tiene dificultades para volver a copiar el archivo, agregue una exclusión a la carpeta de su proyecto en Windows Defender . ( Aprenda cómo hacer eso aquí ).
Esto funcionó para mí instantáneamente y lo repetí en múltiples servidores de aplicaciones.
fuente
Para mí fue que connectionString en Startup.cs era nulo en:
y fue nulo porque la aplicación no estaba buscando en appsettings.json la cadena de conexión.
Tuve que cambiar Program.cs a:
fuente
No tengo idea de por qué esto funcionó para mí, pero estoy usando la autenticación de Windows y tenía este código en mi
BuildWebHost
enProgram.cs
:Después de eliminar el
.UserHttpSys
bit, ahora funciona y todavía puedo autenticarme como usuario de dominio.BuildWebHost
ahora parecefuente
Recibí el mismo error y descubrí que el problema era que durante la publicación en Azure, mi archivo web.config se modificó, por lo que la siguiente línea terminó así:
El problema para Producción son los contenidos de los argumentos: "-argFile IISExeLauncherArgs.txt"
Parece que este problema se abordará en el próximo SDK de .NET Core (actualmente en versión preliminar), pero por ahora, la solución es agregar este bloque al archivo .csproj:
Esto modificará web.config y eliminará la parte problemática para su publicación.
Referencia: https://github.com/aspnet/websdk/issues/242
Espero eso ayude.
fuente
Me funcionó después de cambiar la configuración de publicación.
fuente
Tuve un problema similar (Asp.Net Core 2.x) que fue causado al intentar ejecutar una aplicación principal asp.net de 32 bits en IIS en un servidor de Windows de 64 bits. La causa principal fue que el web.config que se genera automáticamente (si su proyecto no incluye explícitamente uno, que los proyectos principales de asp.net no lo hacen de forma predeterminada) no contiene la ruta completa al ejecutable dotnet. Cuando instale el paquete de alojamiento en una máquina de 64 bits, se instalarán las versiones de 64 y 32 bits de dotnet, pero la ruta se resolverá de forma predeterminada en 64 bits y su aplicación principal asp.net de 32 bits no se cargará. En su navegador puede ver un error 502.5 y si mira el registro de eventos del servidor puede ver el código de error 0x80004005. Si intenta ejecutar dotnet.exe desde un símbolo del sistema para cargar la dll de la aplicación principal de asp.net en ese servidor, es posible que vea un error como "BadImageFormatException" o "
fuente
Tuve el mismo problema y la razón en mi caso fue que el núcleo de EF estaba tratando de leer la cadena de conexión del
appsettings.development.json
archivo. Lo abrí y encontré que la cadena de conexión estaba comentada.Luego los eliminé como a continuación y el problema se resolvió:
fuente