Ошибка HTTP 500.35 - несколько внутрипроцессных приложений ANCM в одном и том же процессе ASP.NET Core 3 - PullRequest
8 голосов
/ 05 октября 2019

С этого утра без каких-либо изменений в код проекта, очень простой веб-API, один контроллер и 3 метода, с Swagger, он больше не запускается, и я получаю ошибку:

Ошибка HTTP 500.35 - несколько приложений ANCM в одном процессе

Программа просмотра событий сообщает о наиболее бесполезном сообщении:

IIS Express AspNetCore Module 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");
            });
        }
    }
}

Вот так: 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"
      }
    }
  }
}

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

Ответы [ 3 ]

10 голосов
/ 05 октября 2019

Благодаря @ 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.

Комментирование этого параметра и еще одного в конце файла, связанного с этим путем, решило проблему.

3 голосов
/ 04 ноября 2019

В настоящее время это ошибка в VS2019

1.) Закройте ваше решение

2. ) Удалить applicationhost.config в папке .vs или удалить всю папку .vs

Папка .vs обычно находится рядом с файлом решения.

enter image description here

3.) Перезапустите решение снова

1 голос
/ 25 октября 2019

Я получил ту же ошибку, когда сделал следующее:

  1. Опубликовал два отдельных основных сайта asp.net
  2. В IIS создал два сайта в разделе «Веб-сайт по умолчанию»,каждая из них имеет физический путь к двум папкам публикации в (1).
  3. Теперь любой из сайтов, которые я открываю, первый работает, а второй дает эту ошибку.

Проблема:

Поскольку оба моих сайта находятся в разделе «Веб-сайт по умолчанию», они оба используют DefaultAppPool, что является причиной этой ошибки. Та же ошибка возникает, когда сайты не входят в «Веб-сайт по умолчанию», но используют один и тот же пул приложений.

Решение:

Как указано в документах ,

Чтобы исправить эту ошибку, запустите приложения в отдельных пулах приложений IIS.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...