Помилка HTTP 500.35 - декілька вбудованих програм ANCM в одному процесі ASP.NET Core 3


34

З цього ранку без змін коду проекту, дуже простий веб-API, один контролер і 3 способи, при Swagger він більше не запускається, і я отримую помилку:

Помилка HTTP 500.35 - декілька вбудованих програм ANCM в одному процесі

Переглядач подій повідомляє про найкорисніше повідомлення:

IIS Express AspNetCore Модуль V2: не вдалося запустити програму '/ LM / W3SVC / 2 / ROOT / docs', ErrorCode '0x80004005'.

Перезавантажували систему кілька разів.

Я використовую Visual Studio 2019, додаток успішно збирається і кілька хвилин тому він працював чудово. Жодного нового програмного забезпечення не встановлено, пакетів не додано. Спробували також очистити і відновити.

Я щойно змінив коментар методу. Очевидно, я також намагався відновити попередній коментар, але завжди отримую одне і те ж повідомлення.

Що я можу зробити?

Чи чисте ядро ​​все ще занадто нестабільне, щоб використовувати його професійно?

ОНОВЛЕННЯ

Той самий код, запущений з тієї ж версії Visual Studio, але в іншому ПК працює належним чином.

ОНОВЛЕННЯ 2

Нижче коду програми:

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

Ось startsettings.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"
      }
    }
  }
}

але впоратись із проектом на іншому ПК з тією ж версією Visual Studio працює чудово, тому, схоже, є помилка конфігурації у .NET Core чи VIsual Studio властивості ...


1
.NET Core використовується у виробництві багатьма розробниками, включаючи сам Microsoft. Він ідеально стійкий. Проблема на вашому боці. Однак тут недостатньо, щоб вам допомогти. Перегляньте посібник з усунення несправностей у документах.
Кріс Пратт

Я отримую ту ж помилку. Ви використовуєте web.config?
Марсель

@Marcel ні, я не використовую її
Giox

1
Я це виправив, змінивши AspNetCoreModuleV2 на AspNetCoreModule, в web.config.
Марсель

2
Вам потрібно переглянути фактичний файл конфігурації, який використовується VS / IIS Express, щоб побачити, чи помилково два додатки .NET Core переходять у той самий пул. Модель в процесі не може цього підтримати.
Лекс Лі

Відповіді:


50

Наразі це помилка у VS2019 - (4 листопада 2019)

1.) Закрийте рішення

2.) Видалити applicationhost.configв папці .vs або видалити всю .vsпапку

.vsПапка поруч з файлом рішення зазвичай.

введіть тут опис зображення

3.) Перезавантажте рішення ще раз


Дякуємо, це економить клопоти з переливанням на applicationhost.config.
CINCHAPPS

1
Виправлено це для мене. Це, здається, вирішує багато подібних питань ...
Роб Л

Це той, хто працював на мене. Знову моя проблема була під час налагодження.
Абі П

1
Мій герой! Це болило мене цілими днями!
Godrules500

Це безумовно працює :)
Amit Philips

28

Завдяки @Lex Li він дав мені рішення.

Проблема полягала у файлі метабаз applicationhost.config, що містить усі параметри для запуску IISExpress Visual Studio для запуску веб-програми.

Для Visual Studio 2019 цей файл знаходиться в

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

Для іншої версії перевірте цю публікацію: Де знаходиться конфігураційний файл / файл метабази IIS Express?

під розділом у мене було таке:

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

Де є якісь дивні налаштування, визначені

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

що, безумовно, було додано, коли я намагався встановити в якості початкової папки шлях / docs.

Коментуючи це налаштування та ще одне в кінці файлу, пов’язаного з цим шляхом, вирішено проблему.


5
Ви рятувальник! +1 Я лише видалив папки .vs для свого проекту, і зараз він працює (і папки для рішення, і проект) Дякую
tscissors

1
У мене була така ж проблема, і це виправлено, проте я помітив, що другий запис автоматично додав VS, коли я змінив властивість "applicationUrl" під iisExpress у startSettings.json. Не впевнений, чому це станеться.
Річі

@Richie здається, що це помилка з VS. Це не видаляє старіші програми, коли ви змінюєте URL-адресу, якою вона повинна бути, коли програма працює в режимі обробки. Там в доповіді тут: developercommunity.visualstudio.com/content/problem/699245 / ... . Подивимось, чи він не закритий як нижчий пріоритет.
andre_ss6

18

Я отримав таку ж помилку, коли зробив наступне:

  1. Опубліковано два окремі основні веб-сайти asp.net
  2. У IIS створено два веб-сайти в розділі "Веб-сайт за замовчуванням", кожен з яких має фізичний шлях, встановлений до кожної з папок публікації у (1) відповідно.
  3. Тепер, який би сайт я відкривав, перший працює, а другий дає цю помилку.

Проблема:

Оскільки обидва мої сайти знаходяться у розділі "Веб-сайт за замовчуванням", вони обидва використовують DefaultAppPool, що є причиною цієї помилки. Ця ж помилка виникає, коли сайти не перебувають у розділі "Веб-сайт за замовчуванням", але використовують той же пул додатків.

Рішення:

Як згадується в документах ,

Щоб виправити цю помилку, запустіть програми в окремих пулах програм IIS.

для мене ця проблема була вирішена, коли я почав використовувати окремі пули програм для кожного сайту.


2
Це працювало, не інші. Дякую.
Ердоган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.