visual tutorial studio net mvc introducción español asp asp.net-core asp.net-core-mvc

tutorial - IIS no puede ejecutar el sitio de ASP.NET Core-Error HTTP 502.5



asp.net mvc (7)

Tenemos una máquina con Windows 2012 R2. Tenía un sitio Core ASP.NET existente en él que tenía un sitio Core ASP.NET publicado funcionando en funcionamiento.

Sin embargo, cuando volví a publicar en el sitio hoy, un mes después, después de realizar los cambios, ya no puedo acceder al sitio y aparece el siguiente error en mi navegador.

Error HTTP 502.5 - Fallo del proceso

Para obtener más información, visite: http://go.microsoft.com/fwlink/?LinkID=808681

Si inicio sesión en el servidor y hago clic en el archivo exe en mi directorio desplegado, se abre un indicador de comando y muestra mi sitio en el puerto 5000. Si accedo al sitio en http: // localhost: 5000 funciona perfectamente, así que el problema es hacerlo. Con IIS y no con el propio sitio.

Si inicio sesión en el servidor puedo ver lo siguiente en Windows EventViewer

La aplicación ''MACHINE / WEBROOT / APPHOST / DEFAULT WEB SITE / MySite'' con la raíz física ''D: / Sites / MySite /' no pudo iniciar el proceso con la línea de comandos ''"% LAUNCHER_PATH%"% LAUNCHER_ARGS%'', ErrorCode = ''0x80070002: 0.

Cuando visité el enlace en el mensaje de error del navegador, mencioné la reinstalación del paquete .net Core Hosting, lo que hice. Sin embargo, el mensaje de error en el navegador es el mismo.

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore requestTimeout="02:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile="./logs/stdout" forwardWindowsAuthToken="false" /> </system.webServer> </configuration>

Cuando veo la carpeta de registro de mi aplicación, se crea un archivo stdout cada vez que intenta acceder a este sitio, pero cada vez que tiene un tamaño de 0 KB y contenido vacío.

¿Por qué IIS se niega a trabajar repentinamente donde funcionaba anteriormente pero la aplicación funciona si accedo directamente al archivo compilado?


Me encontré con este mismo problema cuando implementé mi aplicación. Hubo varios problemas en mi final :)

Revisé esta página con mucho cuidado: ASP.NET Core: Publicación en IIS

Primero, no tenía todas las partes del paquete .NET Core Windows Server Hosting instalado. Terminé haciendo una implementación dependiente de mi trabajo en lugar de una implementación independiente. Tenemos muchas aplicaciones y no queremos ni necesitamos cada una en sus propias versiones de .net core. Habría demasiadas versiones de .net en la caja.

Además, tenga en cuenta que si sus administradores realizaron alguna actualización / actualización al servidor, podrían haber incrementado su instalación de ASP.NET Core (consulte Core de ASP.NET: sección de solución de problemas de publicación en IIS )

Entonces, tuve que arreglar mi web.config ... aquí está mi web.config publicado de trabajo: no publiqué como un * .exe, hice * .dll (note el valor de mis argumentos). Además, mi processPath se establece en "dotnet".

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments="./DT.Web.dll" stdoutLogEnabled="false" stdoutLogFile="./logs/stdout" forwardWindowsAuthToken="false" /> </system.webServer> </configuration>

Además, asegúrese de que todas las opciones de project.json sean todas compatibles con su entorno de servidor (vea ASP.NET Core: sección de resolución de problemas de Publicación en IIS )

Aquí hay una copia de la de mi project.json si puede ser de alguna ayuda:

{ "version": "2.0.1.0", "dependencies": { "DT.Common": "2.*", "DT.Configuration": "2.*", "DT.Services": "2.*", "DT.Web.ViewModels": "2.*", "Microsoft.ApplicationInsights.AspNetCore": "1.0.2", "Microsoft.AspNetCore.Authentication": "1.1.0", "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0", "Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.1.0", "Microsoft.AspNetCore.Diagnostics": "1.1.0", "Microsoft.AspNetCore.Mvc": "1.1.0", "Microsoft.AspNetCore.Razor.Tools": { "version": "1.1.0-preview4-final", "type": "build" }, "Microsoft.AspNetCore.Routing": "1.1.0", "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", "Microsoft.AspNetCore.Server.IISIntegration.Tools": { "version": "1.1.0-preview4-final", "type": "build" }, "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.AspNetCore.Server.Kestrel.Https": "1.1.0", "Microsoft.AspNetCore.Session": "1.0.0", "Microsoft.AspNetCore.StaticFiles": "1.1.0", "Microsoft.Extensions.Caching.SqlServer": "1.0.0", "Microsoft.Extensions.Configuration.Abstractions": "1.1.0", "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", "Microsoft.Extensions.Logging.Console": "1.1.0", "Microsoft.Extensions.Logging.Debug": "1.1.0", "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", "Microsoft.Graph": "1.1.1", "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.6" }, "tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", "Microsoft.AspNetCore.Razor.Tools": { "version": "1.1.0-preview4-final", "imports": "portable-net45+win8+dotnet5.6" }, "Microsoft.Extensions.Caching.SqlConfig.Tools": "1.1.0-preview4-final" }, "frameworks": { "netcoreapp1.1": { "imports": [ "dotnet5.6", "portable-net45+win8" ], "dependencies": { "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" } } } }, "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true }, "runtimeOptions": { "configProperties": { "System.GC.Server": true } }, "publishOptions": { "include": [ "wwwroot", "views/**/*.cshtml", "appsettings.json", "appsettings.*.json", "web.config" ] }, "scripts": { "prepublish": [ "bower install", "gulp buildprod" ], "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] } }


Mi problema fue que el proceso no se iniciaría debido a una secuencia de escape no válida en mi archivo appsettings.json .

Estoy usando dotnet para ejecutar la API de ASPNET Core 2 web publicada. El problema se reveló al abrir un indicador de comando y navegar al directorio donde se encuentran los archivos del sitio. Una vez allí, ejecuté el comando:

dotnet mySite.dll

(cambie mySite.dll a la dll principal de su aplicación. Además, asegúrese de que ya esté instalada la versión correcta del paquete .NET Core Windows Server Hosting).

Al presionar Intro, se estrelló de inmediato y se dio la información exacta en la ventana de la consola de lo que estaba mal. Esa es una excelente manera de ayudar a determinar sus errores de inicio si tiene problemas similares.


Mi proyecto estaba funcionando bien en el desarrollo, pero después de la implementación / publicación web para la producción, estaba lanzando 502.5 Process Failure .

La razón resultó ser que había actualizado el uso de Microsoft.AspNetCore.All 2.0.5 a 2.0.6 . Funcionó bien después de revertir la versión de nuevo.


Problema: cuando implemento la API web principal de asp net, el processPath se establece en dotnet. La aplicación no se inicia y el visor de eventos muestra el error anterior.

Solución:

La identidad del grupo de aplicaciones se debe configurar para cargar el perfil.

Vaya a: Grupo de aplicaciones -> NetCore (su grupo) -> Configuración avanzada -> Cargar perfil de usuario ----> Establezca esto en verdadero

Verifiqué que al volver a falso se vuelve a crear el error y al volver a configurarlo en verdadero, se resolvió.


Su problema es un archivo web.config malo:

<aspNetCore requestTimeout="02:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile="./logs/stdout" forwardWindowsAuthToken="false" />

La ruta% LAUNCHER_PATH% no existe en su sistema, ni siquiera es válida. Debería ser algo como:

<aspNetCore requestTimeout="02:00:00" processPath="./yourAppName.exe" arguments="somePossibleArgument" stdoutLogEnabled="true" stdoutLogFile="./logs/stdout" forwardWindowsAuthToken="false" />

Observe que el archivo web.config se ignora por completo si la aplicación se inicia desde la línea de comandos, por eso no recibe el error.


Tuve el mismo problema con Visual Studio transformando el archivo web.config y cambiando el processPath y los argumentos. Como se describe en el sitio de Microsoft , puede agregar la exclusión en el archivo project.csproj:

<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>

Esto ha solucionado mi problema al cambiar el valor de la ruta en la publicación, pero todavía tengo problemas con Visual Studio cambiándolo por su cuenta al realizar la depuración.


Tuve este mismo problema, Mi problema es que IIS no pudo obtener la ruta a dotnet. Pude arreglarlo especificando la ruta al dotnet.exe

<configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="C:/Program Files/dotnet/dotnet.exe" arguments="./your-project.dll" stdoutLogEnabled="false" stdoutLogFile="./logs/stdout"/> </system.webServer> </configuration>