Error HTTP 500.30 - Fallo de inicio en proceso de ANCM


107

Estaba experimentando con una nueva característica que viene con .net core sdk 2.2 que supuestamente está destinada a mejorar el rendimiento en aproximadamente un 400%.

Impresionante, así que lo probé en mi proyecto ABP ( ASP.NET Boilerplate )

Template asp.net core mvc 4.0.2.0

Agregué lo siguiente a mi web.mv.cprojarchivo

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
  </ItemGroup>

Desafortunadamente, no creo que esta versión del marco ABP sea compatible ya que el proyecto simplemente no se ejecuta y arroja: (eventualmente)

Error HTTP 500.30 - Fallo de inicio en proceso de ANCM

Revisé los registros después de configurar stdoutLogEnabled="true"en web.config y volver a intentarlo, pero no hay entradas.

¿Alguien ha tenido éxito al ejecutar el ABP actual contra un núcleo asp.net en la configuración del proceso?

Creo que esto puede ser algo que solo esté disponible en ABP vNext.


compruebe si hay una función pública que no tenga el atributo POST. Hazlo privado
Mohan

Respuestas:


127

En ASP.NET Core 2.2, se lanzó un nuevo patrón de servidor / alojamiento con IIS llamado alojamiento IIS InProcess . Para habilitar el alojamiento en proceso, se agrega el elemento csproj AspNetCoreHostingModel para establecer el modelo de alojamiento en proceso en el archivo web.config. Además, web.config apunta a un nuevo módulo llamado AspNetCoreModuleV2 que es necesario para el alojamiento en proceso.

Si la máquina de destino en la que está implementando no tiene ANCMV2, no puede usar el alojamiento IIS InProcess. Si es así, el comportamiento correcto es instalar el paquete de alojamiento dotnet en la máquina de destino o degradarlo a AspNetCoreModule.

Fuente: jkotalik (Github)

Intente cambiar la sección en csproj (editar con un editor de texto)

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

a lo siguiente ...

 <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
 </PropertyGroup>

Fuente (Github)


1
Usé tu sugerencia pero la cambié a InProcessy parece funcionar bien. ¡Gracias!
Jazb

4
10x salvador de vida
Valentin Petkov

2
También tuve que cambiar el alojamiento de InProcess a OutOfProcess en web.config
Mateusz Migała

1
Me gustaría señalar que incluir AspNetCoreModulesaltos de depuración de salida en VS2017. https://github.com/aspnet/AspNetCore/issues/6609
Eric

1
¿Esto cambia fundamentalmente cómo se ejecuta el sitio en IIS aunque?
hanzolo

41

Desde ASP.NET Core 3.0+ y Visual Studio 19 versión 16.3+ Encontrará la sección en el archivo .csproj del proyecto como se muestra a continuación:

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

No hay ninguna propiedad AspNetCoreHostingModel allí. Encontrará la selección del modelo de Hosting en las propiedades del proyecto. Haga clic con el botón derecho en el nombre del proyecto en el explorador de soluciones. Haga clic en propiedades.

ingrese la descripción de la imagen aquí

Haz clic en el menú Depurar.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Desplácese hacia abajo para encontrar la opción Modelo de alojamiento.

ingrese la descripción de la imagen aquí

Seleccione Fuera de proceso.

ingrese la descripción de la imagen aquí

Guarde el proyecto y ejecute IIS Express.

ACTUALIZACIÓN para la implementación del servidor:

Cuando publica su aplicación en el servidor, hay un archivo de configuración web como el siguiente:

ingrese la descripción de la imagen aquí

cambie el valor de 'hostingModel' de 'en proceso' a 'fuera de proceso' como se muestra a continuación:

ingrese la descripción de la imagen aquí


Después de publicar en el servicio, cambio el valor de 'hostingModel' de 'en proceso' a 'fuera de proceso' como dijiste, pero ahora recibo este error: Error HTTP 502.5 - Fallo de inicio fuera del proceso de
ANCM

¿Está bien antes de cambiar el valor?
Mohammad Sadiqur Rahman

No, no está bien, pero se resuelve instalando el paquete de alojamiento
waki68

17

En mi caso, había cambiado recientemente una cadena de conexión de base de datos en mi archivo appstettings.json. Sin registro ni captura de errores en el lugar, sospecho que este error terminó causando el error "HTTP Error 500.30 - Fallo de inicio en proceso de ANCM".

Me di cuenta del intercambio entre x-freestyler y Tahir Khalid donde Tahir sugirió un problema de IOC en el inicio. Dado que mi inicio no había cambiado recientemente, pero mi appstettings.json sí, determiné que la cadena de conexión en mi appstettings.json era la causa del problema. Corregí una cadena de conexión incorrecta y el problema se resolvió. Gracias a toda la comunidad.


2
Gracias por compartir. Revisé mi appsettings.json y encontré un error de escritura. Eso resolvió el problema.
heringer

Similar; Recibí el mensaje "HTTP Error 500.30 - ANCM In-Process Start Failure" cuando a mi archivo appsettings.json le faltaba un '{'
JTech

Gracias, en mi appsettings.json en la cadena de conexión no logré escapar "\" por "\\" en una cadena de conexión local sqlexpress. Entonces, antes de la solución, tengo "Server = machine01 \ SQLEXPRESS; xxxx" y ahora con "Server = machine01 \\ SQLEXPRESS; xxxx" ¡está funcionando perfectamente!
bau

Honestamente, no había notado mi problema hasta que miré el sistema Event Logsque indicaba una configuración JSON mal formada.
vandsh

Similar a lo que experimentó @heringer, tenía un carácter no válido en mi cadena de conexión. Quitarlo resolvió el problema.
Alexander Santos

11

Si está utilizando Visual Studio y tiene instancias en ejecución, ciérrelas todas.

Debería encontrar una .vssubcarpeta donde reside su solución ( .slnarchivo) de Visual Studio .
Elimine la .vscarpeta y vuelva a intentarlo con el modelo de alojamiento en proceso.


10

ASP.NET Core 2.2 o posterior: para una implementación autónoma de 64 bits (x64) que usa el modelo de hospedaje en proceso, deshabilite el grupo de aplicaciones para procesos de 32 bits (x86).

En la barra lateral Acciones del Administrador de IIS> Grupos de aplicaciones, seleccione Establecer valores predeterminados del grupo de aplicaciones o Configuración avanzada. Busque Activar aplicaciones de 32 bits y establezca el valor en Falso.

Fuente: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.0#create-the-iis-site


1
Este cambio solucionó mis problemas al convertir de ASP.NET Core 3.0 a 3.1
SteveC

Dotnet core 3.1: cambié SelfContained a false en mi pubxml y obtuve el error. Esto lo arregló.
Andrew Cowenhoven

5

Recibí el mismo error en mi máquina de desarrollo con Windows 10. El error no desapareció después de que instalé el paquete de alojamiento central dotnet. Tuve que ir al Visor de eventos para obtener el error detallado. Su problema subyacente (si lo hay) puede ser diferente al mío. El punto es que, si está en una máquina con Windows, el Visor de eventos está ahí para proporcionar detalles. Espero que esto ayude a alguien.

el visor de eventos proporcionó detalles del error


4

En tal caso, fue solo un error tipográfico que corrompe e impide el análisis del archivo de configuración JSON


¿Y cómo fue eso posible?
tnk479

4

Miré los registros de Windows en Aplicación. Mostraba el mensaje de error y el seguimiento de la pila. Descubrí que me faltaba una carpeta llamada node_modules. Creé esa carpeta y eso la solucionó.

No realicé ningún cambio en web.config ni en el archivo del proyecto. Mi versión de .NETCoreApp era 3.1


+1 por buscar en los registros de Windows para encontrar un mensaje de error detallado; esto me ayudó a solucionarlo muy rápido, ¡gracias!
tristankoffee

3

Eliminar la línea AspNetCoreHostingModel en el archivo .cproj funcionó para mí. No había tal línea en otro proyecto mío que estaba funcionando bien.

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

2
No me gusta eliminar cosas para resolver un problema, ya que enmascara cuál era el problema real, pero gracias x-freestyler por esta publicación, ya que al eliminar esa línea expuso el problema subyacente que tenía que ver con una falla de inicio de IoC para uno de las dependencias no se registran!
Tahir Khalid

3

Tuve un problema similar al intentar cambiar del alojamiento OutOfProcess al alojamiento InProcess en un proyecto .Net Core que había actualizado recientemente de 2.0 a 3.0.

Sin ningún error útil real y después de pasar días tratando de resolver esto, finalmente encontré una solución para mi caso que pensé que compartiría en caso de que sea útil para alguien más que tenga problemas con esto.

Para mí, fue causado por algunos paquetes Microsoft.AspNetCore .

Después de eliminar todos los paquetes Microsoft.AspNetCore referenciados que tenían una versión inferior a 3.0.0 (no había ninguna actualización disponible> = 3.0.0 para estos), este error ya no se produjo.

Estos fueron los paquetes que eliminé;

<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.8" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />

Todos los demás paquetes de Microsoft.AspNetCore con una versión mayor o igual a 3.0.0 funcionaron bien.



2

Esta configuración de perfil de publicación se solucionó para mí:

Configurar perfil de publicación -> Configuración -> Opciones de extensiones de sitio ->

  • [x] Instale la extensión del sitio ASP.NET Core.


2

Encontré otro problema que comienza dando el mismo mensaje de error que en la pregunta. Estoy compartiendo esto aquí para que antes de cambiar el archivo del proyecto pueda asegurarse de que sus servicios estén registrados correctamente.

También estoy ejecutando .netcore 2.2 y recibí el mismo mensaje de error, así que cambié el archivo del proyecto de InProcess a OutOfProcess como en la respuesta seleccionada. Después de eso, encontré la causa real de mi problema cuando recibí el mensaje "No se puede crear una instancia del tipo de implementación": la causa de esto fue que tuve:

services.AddScoped<IMyService, IMyService>();

en vez de

services.AddScoped<IMyService, MyService>();

Publicación relacionada: ¿Por qué aparece el error "No se puede crear una instancia del tipo de implementación" para mi servicio genérico?


1
Este también fue mi caso. Gracias.
Felipe Romero

1

Después de pasar un día entero luchando conmigo mismo para decidir alojar mi aplicación principal asp.net en IIS con el alojamiento InProcess, finalmente estoy orgulloso y aliviado de haber resuelto este problema. Horas de pasar repetidamente por los mismos foros, blogs y preguntas SO que hicieron todo lo posible para resolver el problema, todavía estaba atascado después de seguir todos los enfoques mencionados anteriormente. Ahora aquí describiré mi experiencia al resolverlo.

Paso 1: crear un sitio web en IIS

Paso 2: Asegúrese de que AppPool para el sitio web tenga la versión .Net CLR configurada en "Sin código administrado" y la propiedad "Habilitar aplicaciones de 32 bits" en AppPool -> Configuración avanzada está configurada como falsa

Paso 3: asegúrese de que su proyecto haga referencia .Net core 2.2

Paso 4: agregue la siguiente línea en su archivo startup.cs dentro del método ConfigureServices

services.Configure<IISServerOptions>(options =>
{
     options.AutomaticAuthentication = false;
});

Paso 6: agregue los siguientes paquetes de Nuget

Microsoft.AspNetCore.App v2.2.5 o superior

Microsoft.AspNetCore.Server.IIS v2.2.2 o superior

Paso 7: agregue la siguiente línea a su archivo .csproj

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

Paso 8: compile y publique su código (preferiblemente x64 bitness )

Paso 9: asegúrese de haber agregado el nombre de host de su sitio web en el archivo etc / hosts

Paso 10: reinicie el servicio de publicación World Wide Web

Ahora pruebe su aplicación principal de asp.net y debería estar alojada usando el alojamiento InProcess Para verificar si su aplicación está alojada usando el modo InProcess, verifique los encabezados de respuesta y debe contener la siguiente línea

Servidor: Microsoft-IIS / 10.0 (la versión de IIS podría depender de su sistema)

Actualización : descargue e instale el paquete de alojamiento ASP.Net Core que se requiere para que funcione


1

Vaya, hay muchas respuestas a esta pregunta, pero tuve el mismo problema y mi solución fue diferente a todo lo que leí aquí, y también bastante simple.

Había tenido problemas para implementar mi aplicación en azul con la configuración de entorno correcta, por lo que estaba jugando con el archivo launchsettings.json y había cambiado el valor de la variable ASPNETCORE_ENVIRONMENT en el perfil de IIS de "Desarrollo" a "Producción". . Cambiarlo de nuevo a "Desarrollo" solucionó el problema.

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }

1

En mi caso, era un valor incorrecto en el archivo appsettings.json. El valor fue .\SQLEXPRESSy funcionó después de que lo cambié a.\\SQLEXPRESS


¡El mío también fue causado por un archivo appsettings.json mal formateado!
fosbie


0

Porque la aplicación falla. ¡Para quien ahorra tiempo en esta excepción!

Y el código de error dice que lanza una excepción porque no puede encontrar un archivo en la fase inicial. Consulte la sección Configuración del entorno. En mi escenario, funcionó cuando cambié el siguiente código

var environment = whb.GetSetting("environment");

a

var environment = "Development";// whb.GetSetting("environment");

Porque tengo appsettings.development.json pero no tenía appsettings.production.json. Por qué no puede encontrar ningún archivo porque está buscando algo diferente en el lugar correcto.


0

Con .Net Core 2.2 debería poder utilizar el modelo de alojamiento InProcess, ya que es naturalmente más rápido: todo se procesa en IIS, sin un salto HTTP adicional entre IIS y el servidor Kestrel de su aplicación. Una cosa que quizás desee hacer es agregar esta etiqueta: AspNetCoreModuleV2 Observe la nueva opción AspNetCoreModuleV2 frente a la anterior AspNetCoreModule. Otra cosa importante que debe hacer es examinar el registro de eventos de la aplicación de Windows para identificar al culpable. Aunque los mensajes de error pueden ser crípticos, ocasionalmente apuntan a los números de línea exactos en el código que causaron la falla. Además, en caso de que use CI / CD con TFS, es posible que haya variables de entorno en el archivo appsettings.json que no se reemplazaron correctamente con sus valores designados, y esta fue una de las fuentes de excepción para mí.


0

Tuve un problema en mi Program.csarchivo. Estaba tratando de conectarme con AddAzureKeyVaulteso que se había eliminado hace mucho tiempo.

Conclusión :

This error could come to due to any silly error in the application. Debug step by step your application startup process.

0

En mi caso, tuve una migración que fallaba cuando se ejecutaba en un entorno específico en Azure, pero funcionaba bien en dev. Como tenemos el servicio configurado para ejecutar las migraciones como parte del inicio, el inicio real de la aplicación web falla.

Ejecuté la migración manualmente en el entorno para descubrir el problema y luego lo ajusté para tratar las diferencias de datos en ese entorno.

Si alguien sabe cómo pude haber visto el error de migración sin ejecutar manualmente directamente en la base de datos, sería útil.


0

Simplemente tuve el mismo problema. Resultó que fue un error estúpido de mi parte.

En ServiceCollection intenté registrar un abstract class

services.AddScoped<IMyInterface, MyClasss>();

donde MyClassestabaabstract por alguna razón desconocida para mi jeje :)

Así que chicos, si tienes, HTTP Error 500.30 - ANCM In-Process Start Failure solo revisa tuServiceCollection


0

Para mí, todo estuvo bien, pero el problema se debió a la publicación de diferentes versiones de VS, ¡¡qué raro !!! (último VS 2019 (16.4.2)). Cuando publico la aplicación con VS 2017, funciona bien.

El problema real está en su archivo json de dependencia (por ejemplo MyWebApp.deps.json) en la carpeta de publicación. Espero que ayude a alguien.

ingrese la descripción de la imagen aquí


Últimamente, descubro que el archivo está disponible en la carpeta publicada. Pero el mensaje de error en evenLogs apunta a este archivo dep.json y en esta ruta de archivo JSON mencionada runtimes/win-x64/native, no estoy seguro de que apunte a la misma carpeta o en alguna ruta
Premchandra Singh

El problema real que tengo en evenlog es Could not find inprocess request handler. Captured output from invoking hostfxr: Error: An assembly specified in the application dependencies manifest (Cues.Web.deps.json) was not found: package: 'runtime.win-x64.Microsoft.NETCore.App', version: '2.2.8' path: 'runtimes/win-x64/native/mscordaccore_amd64_amd64_4.6.28207.03.dll'
Premchandra Singh

0

Por favor, vea mi respuesta anterior en este mismo hilo para comprender el conjunto. Perdón por múltiples respuestas

Después de una mayor investigación, el problema estaba sucediendo debido a que VS 2019 elige el último parche (comportamiento predeterminado de VS) de .net core 2.2, que es 2.2.8 para que publique la aplicación. Podemos restringir esto a una versión específica de nuestra elección usando

<RuntimeFrameworkVersion>2.2.4</RuntimeFrameworkVersion>

Vea aquí . Esto finalmente resolvió mi problema a pesar de que no se aplicó el último parche. Puedo construir desde cualquier VS 2017 o VS 2019, ambos publican la aplicación para .net core 2.2.0 versión en tiempo de ejecución

ingrese la descripción de la imagen aquí


0

Tuve el mismo error y el problema fue con la versión Microsoft.Extension.Primitives del paquete no era compatible con la versión principal de .net. Y esto era una referencia de uno de los proyectos que hacía referencia a mi proyecto.

Una vez que cambié Microsoft.Extension.Primitives en ese proyecto. Este problema se solucionó.

En los registros de eventos de Azure, compruebe qué error recibe y si está relacionado con una referencia de paquete. Pruebe lo anterior que he mencionado.

Dado que los paquetes nuget están estrechamente acoplados con la versión .net. Solo debe asegurarse de que todos los paquetes que hacen referencia al proyecto también estén estrechamente acoplados con la versión .net.


0

Bueno, para mí tuve un inicio de aplicación complicado en el que había creado mi propio WebHostBuilder. Esto funcionó bien pero falló cuando probé el modo de alojamiento InProcess. Supongo que hubo algo que no llamé en WebHostBuilder. Así que me aseguré de llamar siempre a WebHost.CreateDefaultBuilder (args) y luego realizar cambios adicionales, básicamente como lo hacen las nuevas plantillas de aplicaciones.

O para las plantillas asp core 3.1 que usan IHostBuilder (no IWebHostBuilder), llame a ConfigureWebHostDefaults

 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                // add stuff here
                webBuilder.UseStartup<Startup>();
            });

0

En mi caso, ninguna de las soluciones anteriores funcionó. Pero cuando eliminé el archivo myproject.vspscc del explorador de soluciones, el problema se resolvió.


0

Resolvió mi problema ejecutando el grupo de aplicaciones dedicado para AspNetCoreModuleV2

Descripción:

HTTP Error 500.34 - ANCM Mixed Hosting Models Not Supported

Estaba ejecutando varias aplicaciones en el mismo grupo de aplicaciones. Algunas de las aplicaciones se estaban ejecutando

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />

La aplicación que causaba el error estaba ejecutando AspNetCoreModuleV2

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

Creé un nuevo grupo de aplicaciones dedicado para AspNetCoreModuleV2 y resolvió mi problema.


0

Tuve un error de tiempo de ejecución en Startup.cs. Error de colegial: hice un pequeño ajuste en ese archivo, pero no ejecuté mi aplicación localmente antes de implementarla en Azure. La aplicación no se inició correctamente y obtuve la página de error 500.30.


También tuve un problema en la clase de inicio. Estaba usando EF en la base de datos de memoria e intentaba sembrarlo en el método principal . Funciona cuando se ejecuta localmente, pero no en Azure.
Yuri Cardoso
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.