Error HTTP 500.35 - ANCM múltiples aplicaciones en proceso en el mismo proceso ASP.NET Core 3

34

Desde esta mañana sin ningún cambio en el código del proyecto, una API web muy simple, un controlador y 3 métodos, con Swagger, ya no se inicia y aparece el error:

Error HTTP 500.35 - ANCM múltiples aplicaciones en proceso en el mismo proceso

El visor de eventos informa el mensaje más inútil:

IIS Express AspNetCore Module V2: no se pudo iniciar la aplicación '/ LM / W3SVC / 2 / ROOT / docs', Código de error '0x80004005'.

Reinició el sistema varias veces.

Estoy usando Visual Studio 2019, la aplicación se compiló con éxito y hace unos minutos estaba funcionando bien. No se ha instalado ningún nuevo software, no se han agregado paquetes. Intenté también limpiar y reconstruir.

Acabo de modificar el comentario de un método. Obviamente también he intentado restaurar el comentario anterior, pero siempre recibo el mismo mensaje.

¿Que puedo hacer?

¿El núcleo neto sigue siendo demasiado inestable para ser utilizado profesionalmente?

ACTUALIZAR

El mismo código lanzado desde la misma versión de Visual Studio pero en otra PC se ejecuta correctamente.

ACTUALIZACIÓN 2

Debajo del código de la aplicación:

startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using System;
using System.IO;
using System.Reflection;

namespace WFP_GeoAPIs
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllers(); 
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo() { Title = "Geographic APIs", Version = "v1.0.0" });
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.XML";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);    
                c.IncludeXmlComments(xmlPath);
            });
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                 Path.Combine(Directory.GetCurrentDirectory(), "swagger-ui")),
                RequestPath = "/swagger-ui"
            });

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            app.UseSwagger();    
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "GeoAPIs Ver 1.0.0");
                c.RoutePrefix = "docs";
                c.InjectStylesheet("/swagger-ui/custom.css");
            });
        }
    }
}

Aquí está el launchsettings.json:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:51319",
      "sslPort": 44345
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "docs",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WFP_GeoAPIs": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "docs",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

pero hacer frente al proyecto en otra PC con la misma versión de Visual Studio funciona bien, por lo que parece que es un error de configuración en la propiedad .NET Core o VIsual Studio ...

Giox
fuente
1
.NET Core está en uso en producción por muchos desarrolladores, incluido el propio Microsoft. Es perfectamente estable. El problema está de tu lado. Sin embargo, aquí no hay suficiente para ayudarte. Consulte la guía de solución de problemas en los documentos.
Chris Pratt
Me sale el mismo error. ¿Estás usando un web.config?
Marcel
@Marcel no, no lo estoy usando
Giox
1
Sí, arreglé la mía cambiando AspNetCoreModuleV2 a AspNetCoreModule, en web.config.
Marcel
2
Debe revisar el archivo de configuración real utilizado por VS / IIS Express para ver si por error dos aplicaciones .NET Core van al mismo grupo. El modelo en proceso no puede soportar eso.
Lex Li el

Respuestas:

50

Actualmente es un error en VS2019 - (4 de noviembre de 2019)

1.) Cierra tu solución

2.) Eliminar applicationhost.configen la carpeta .vs o eliminar toda la .vscarpeta

La .vscarpeta suele estar al lado de su archivo de solución.

ingrese la descripción de la imagen aquí

3.) Reinicie su solución nuevamente

Leyendas
fuente
Gracias, esto ahorra la molestia de verter sobre applicationhost.config.
CINCHAPPS
1
Me lo arregló. Esto parece solucionar muchos problemas similares ...
Rob L
Este es el que funcionó para mí. Nuevamente mi problema fue durante la depuración.
Abi P
1
¡Mi héroe! ¡Esto me ha acosado por días!
Godrules500
Esto definitivamente funciona :)
Amit Philips
28

Gracias a @Lex Li me ha dado la solución.

El problema estaba en applicationhost.config, el archivo de metabase que contiene todas las configuraciones para el lanzamiento de IISExpress por Visual Studio para ejecutar su aplicación web.

Para Visual Studio 2019, este archivo se encuentra en

$(solutionDir)\.vs\{projectName}\config\applicationhost.config

Para otra versión, consulte esta publicación: ¿Dónde se encuentra el archivo de configuración / metabase de IIS Express?

En la sección tenía lo siguiente:

<sites>    
  <site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
      <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation=":8080:localhost" />
    </bindings>
  </site>

  <site name="MyProjectName" id="2">
    <application path="/" applicationPool="MyProjectName AppPool">
      <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
    </application>

   <application path="/docs" applicationPool="docs AppPool">
      <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
    </application>

    <bindings>
      <binding protocol="http" bindingInformation="*:59386:localhost" />
      <binding protocol="https" bindingInformation="*:44345:localhost" />
    </bindings>
  </site>
  <siteDefaults>
    <!-- To enable logging, please change the below attribute "enabled" to "true" -->
    <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
    <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
  </siteDefaults>
  <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
  <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

Donde hay algún entorno extraño definido por

<application path="/docs" applicationPool="docs AppPool">
   <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
</application> 

eso ciertamente se agregó cuando intenté establecer como carpeta de inicio la ruta / docs.

Al comentar esta configuración y otra al final del archivo relacionado con esta ruta, se resolvió el problema.

Giox
fuente
55
Eres salvavidas! +1 Acabo de eliminar las carpetas .vs para mi proyecto y ahora está funcionando (ambas carpetas para la solución y el proyecto) Gracias
tscissors
1
Tuve el mismo problema y esto lo solucionó, sin embargo, noté que VS agregó la segunda entrada automáticamente cuando modifiqué la propiedad "applicationUrl" en iisExpress en launchSettings.json. No estoy seguro de por qué sucedería esto.
Richie
@Richie parece que es un error con VS. No está eliminando las aplicaciones más antiguas cuando cambia la URL, que debería ser cuando la aplicación se ejecuta en proceso. Hay un informe aquí: developercommunity.visualstudio.com/content/problem/699245/… . Veamos si no está cerrado como Prioridad inferior.
andre_ss6
18

Recibí el mismo error cuando hice lo siguiente:

  1. Publicado dos sitios web principales de asp.net
  2. En IIS, creó dos sitios web en "Sitio web predeterminado", cada uno con una ruta física establecida para cada una de las carpetas de publicación en (1) respectivamente.
  3. Ahora, cualquiera de los sitios que abro primero funciona, y el segundo da ese error.

Problema:

Dado que mis dos sitios están en "Sitio web predeterminado", ambos usan DefaultAppPool, que es la causa de este error. El mismo error se produce cuando los sitios no están en "Sitio web predeterminado" pero usan el mismo grupo de aplicaciones.

Solución:

Como se menciona en los documentos ,

Para corregir este error, ejecute aplicaciones en grupos de aplicaciones de IIS independientes.

para mí, este problema se resolvió cuando comencé a usar grupos de aplicaciones separados para cada sitio.

Sнаđошƒаӽ
fuente
2
Funcionó, no otros. Gracias.
Erdogan