Od dziś rano bez żadnych zmian w kodzie projektu, bardzo prosty interfejs API sieci Web, jeden kontroler i 3 metody, dzięki Swagger nie uruchamia się już więcej i pojawia się błąd:
Błąd HTTP 500.35 - Wiele aplikacji wewnątrzprocesowych ANCM w tym samym procesie
Przeglądarka zdarzeń zgłasza najbardziej bezużyteczną wiadomość:
Moduł IIS Express AspNetCore V2: Nie można uruchomić aplikacji „/ LM / W3SVC / 2 / ROOT / docs”, kod błędu „0x80004005”.
Zrestartowałem system kilka razy.
Korzystam z programu Visual Studio 2019, aplikacja została pomyślnie skompilowana i kilka minut temu działała dobrze. Żadne nowe oprogramowanie nie zostało zainstalowane, nie dodano żadnych pakietów. Próbowałem także wyczyścić i odbudować.
Właśnie zmodyfikowałem komentarz metody. Oczywiście próbowałem również przywrócić poprzedni komentarz, ale zawsze otrzymuję ten sam komunikat.
Co mogę zrobić?
Czy rdzeń sieci jest nadal zbyt niestabilny, aby można go było używać profesjonalnie?
AKTUALIZACJA
Ten sam kod uruchomiony z tej samej wersji programu Visual Studio, ale na innym komputerze działa poprawnie.
AKTUALIZACJA 2
Poniżej kod aplikacji:
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");
});
}
}
}
Oto plik 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"
}
}
}
}
ale kopiowanie projektu na innym komputerze z tą samą wersją Visual Studio działa dobrze, więc wygląda na to, że jest to błąd konfiguracji we właściwości .NET Core lub VIsual Studio ...
źródło
Odpowiedzi:
Obecnie jest to błąd w VS2019 - (4 listopada 2019 r.)
1.) Zamknij swoje rozwiązanie
2.) Usuń
applicationhost.config
w folderze.vs
lub usuń cały.vs
folder.vs
Folder jest obok pliku rozwiązanie zwykle.3.) Uruchom ponownie rozwiązanie
źródło
Dzięki @Lex Li dał mi rozwiązanie.
Problem polegał na pliku applicationhost.config, pliku metabazy zawierającym wszystkie ustawienia uruchamiania IISExpress przez Visual Studio w celu uruchomienia aplikacji internetowej.
W przypadku programu Visual Studio 2019 ten plik znajduje się w
W przypadku innej wersji sprawdź ten post: Gdzie znajduje się plik konfiguracji / metabazy IIS Express?
w sekcji miałem następujące:
Gdzie są jakieś dziwne ustawienia zdefiniowane przez
które z pewnością zostało dodane, gdy próbowałem ustawić jako folder początkowy ścieżkę / docs.
Skomentowanie tego ustawienia i innego na końcu pliku związanego z tą ścieżką rozwiązało problem.
źródło
Ten sam błąd wystąpił, gdy wykonałem następujące czynności:
Problem:
Ponieważ obie moje witryny znajdują się w obszarze „Domyślna witryna internetowa”, obie używają DefaultAppPool, co jest przyczyną tego błędu. Ten sam błąd występuje, gdy witryny nie znajdują się w „Domyślnej witrynie sieci Web”, ale korzystają z tej samej puli aplikacji.
Rozwiązanie:
Jak wspomniano w dokumentach ,
dla mnie ten problem został rozwiązany, kiedy zacząłem używać osobnych pul aplikacji dla każdej witryny.
źródło