Errore HTTP 500.35 - ANCM Più applicazioni in-process nello stesso processo ASP.NET Core 3


34

Da questa mattina senza alcuna modifica al codice del progetto, un'API Web molto semplice, un controller e 3 metodi, con Swagger, non si avvia più e viene visualizzato l'errore:

Errore HTTP 500.35 - Applicazioni in-process multiple ANCM nello stesso processo

Il visualizzatore di eventi segnala il messaggio più inutile:

Modulo I2 Express AspNetCore V2: impossibile avviare l'applicazione "/ LM / W3SVC / 2 / ROOT / docs", codice errore "0x80004005".

Riavviato il sistema più volte.

Sto usando Visual Studio 2019, l'applicazione viene compilata correttamente e pochi minuti fa funzionava bene. Nessun nuovo software è stato installato, nessun pacchetto aggiunto. Ho provato anche pulito e ricostruito.

Ho appena modificato il commento di un metodo. Ovviamente ho provato anche a ripristinare il commento precedente ma ricevo sempre lo stesso messaggio.

Cosa posso fare?

Net Core è ancora troppo instabile per essere utilizzato professionalmente?

AGGIORNARE

Lo stesso codice lanciato dalla stessa versione di Visual Studio ma in un altro PC funziona correttamente.

AGGIORNAMENTO 2

Di seguito il codice dell'applicazione:

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");
            });
        }
    }
}

Ecco il 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"
      }
    }
  }
}

ma copiare il progetto su un altro PC con la stessa versione di Visual Studio funziona bene, quindi sembra che sia un bug di configurazione nella proprietà .NET Core o VIsual Studio ...


1
.NET Core è utilizzato nella produzione da molti sviluppatori, incluso Microsoft stesso. È perfettamente stabile. Il problema è dalla tua parte. Tuttavia, non c'è abbastanza qui per aiutarti. Consulta la guida alla risoluzione dei problemi nei documenti.
Chris Pratt,

Ricevo lo stesso errore. Stai usando un web.config?
Marcel,

@Marcel no, non lo sto usando
Giox,

1
Sì, ho risolto il mio cambiando AspNetCoreModuleV2 in AspNetCoreModule, in web.config.
Marcel,

2
È necessario rivedere il file di configurazione effettivo utilizzato da VS / IIS Express per vedere se per errore due app .NET Core vanno nello stesso pool. Il modello in-process non può supportarlo.
Lex Li,

Risposte:


50

Attualmente è un bug in VS2019 - (4 nov 2019)

1.) Chiudi la tua soluzione

2.) Elimina applicationhost.confignella cartella .vs o elimina l'intera .vscartella

La .vscartella si trova di solito accanto al file della soluzione.

inserisci qui la descrizione dell'immagine

3.) Riavvia di nuovo la soluzione


Grazie, questo evita il fastidio di riversare su applicationhost.config.
CINCHAPPS,

1
Risolto il problema per me. Questo sembra risolvere un sacco di problemi simili ...
Rob L

Questo è quello che ha funzionato per me. Ancora una volta il mio problema era durante il debug.
Abi P

1
Mio eroe! Questo mi ha tormentato per giorni!
Godrules500,

Funziona sicuramente :)
Amit Philips,

28

Grazie a @Lex Li mi ha dato la soluzione.

Il problema era in applicationhost.config, il file della metabase contenente tutte le impostazioni per l'avvio IISExpress di Visual Studio per eseguire l'applicazione Web.

Per Visual Studio 2019, questo file si trova in

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

Per altre versioni, controlla questo post: dove si trova il file di configurazione / metabase di IIS Express?

nella sezione ho avuto il seguente:

<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>

Dove ci sono alcune strane impostazioni definite da

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

che è stato sicuramente aggiunto quando ho provato a impostare come cartella di avvio il percorso / docs.

Commentare questa impostazione e un'altra alla fine del file relativo a questo percorso ha risolto il problema.


5
Sei un salvavita! +1 Ho appena eliminato le cartelle .vs per il mio progetto e ora funziona (entrambe le cartelle per soluzione e progetto) Grazie
tscissors

1
Ho avuto lo stesso problema e questo risolto, tuttavia, ho notato che la seconda voce è stata aggiunta automaticamente da VS quando ho modificato la proprietà "applicationUrl" sotto iisExpress in launchSettings.json. Non sono sicuro del perché questo accada.
Richie,

@Richie sembra che sia un bug con VS. Non sta eliminando le app precedenti quando si modifica l'URL, come dovrebbe essere quando l'app esegue il processo. C'è un rapporto qui: developercommunity.visualstudio.com/content/problem/699245/… . Vediamo se non è chiuso come Priorità Bassa.
andre_ss6,

18

Ho avuto lo stesso errore quando ho fatto quanto segue:

  1. Pubblicati due siti Web principali asp.net separati
  2. In IIS, creato due siti Web in "Sito Web predefinito", ognuno con il percorso fisico impostato su ciascuna delle cartelle di pubblicazione in (1) rispettivamente.
  3. Ora qualunque dei siti che apro per primo funziona, e il secondo dà quell'errore.

Problema:

Poiché entrambi i miei siti si trovano in "Sito Web predefinito", entrambi utilizzano DefaultAppPool, che è la causa di questo errore. Lo stesso errore si verifica quando i siti non si trovano in "Sito Web predefinito" ma utilizzano lo stesso pool di app.

Soluzione:

Come menzionato nei documenti ,

Per correggere questo errore, eseguire app in pool di applicazioni IIS separati.

per me questo problema è stato risolto quando ho iniziato a utilizzare pool di app separati per ciascun sito.


2
Ha funzionato, non altri. Grazie.
Erdogan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.