HTTP 오류 500.35-동일한 프로세스 ASP.NET Core 3의 ANCM 다중 프로세스 내 응용 프로그램


34

오늘 아침부터 프로젝트 코드, 매우 간단한 웹 API, 하나의 컨트롤러 및 3 개의 메소드, Swagger를 변경하지 않고 더 이상 시작되지 않으며 오류가 발생합니다.

HTTP 오류 500.35-동일한 프로세스의 ANCM 다중 프로세스 내 애플리케이션

이벤트 뷰어는 가장 쓸모없는 메시지를보고합니다.

IIS Express AspNetCore 모듈 V2 : 응용 프로그램 '/ LM / W3SVC / 2 / ROOT / docs', 오류 코드 '0x80004005'을 (를) 시작하지 못했습니다.

시스템을 여러 번 다시 시작했습니다.

Visual Studio 2019를 사용하고 있으며 응용 프로그램이 성공적으로 컴파일되고 몇 분 전에 제대로 작동했습니다. 새로운 소프트웨어가 설치되지 않았으며 패키지가 추가되지 않았습니다. 또한 청소하고 재건했습니다.

방금 메소드의 주석을 수정했습니다. 분명히 이전 의견을 복원하려고 시도했지만 항상 동일한 메시지가 나타납니다.

어떡해?

넷 코어가 여전히 불안정하여 전문적으로 사용할 수 없습니까?

최신 정보

동일한 버전의 Visual Studio에서 시작했지만 다른 PC에서는 동일한 코드가 올바르게 실행됩니다.

업데이트 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 버전으로 다른 PC에서 프로젝트를 처리하면 정상적으로 작동하므로 .NET Core 또는 VIsual Studio 속성의 구성 버그 인 것 같습니다 ...


1
.NET Core는 Microsoft 자체를 비롯한 많은 개발자가 프로덕션 환경에서 사용하고 있습니다. 완벽하게 안정적입니다. 문제는 당신 편입니다. 그러나 여기에는 도움이 충분하지 않습니다. 문서의 문제 해결 가이드를 확인하십시오.
— Chris Pratt

같은 오류가 발생합니다. web.config를 사용하고 있습니까?
— Marcel

@Marcel 아니오 나는 그것을 사용하지 않습니다
— Giox

1
web.config에서 AspNetCoreModuleV2를 AspNetCoreModule로 변경하여 문제를 해결했습니다.
— Marcel

2
실수로 두 개의 .NET Core 앱이 동일한 풀로 이동하는지 확인하려면 VS / IIS Express에서 사용하는 실제 구성 파일을 검토해야합니다. 인 프로세스 모델은이를 지원할 수 없습니다.
— Lex Li

답변:


50

현재 VS2019 의 버그 입니다-(2019 년 11 월 4 일)

1.) 솔루션을 닫습니다

2.)applicationhost.config 폴더에서 삭제 .vs 또는 전체 .vs폴더 삭제

.vs폴더는 일반적으로 솔루션 파일 옆에 있습니다.

여기에 이미지 설명을 입력하십시오

3.) 솔루션을 다시 시작하십시오


덕분에 applicationhost.config를 따르는 번거 로움을 덜 수 있습니다.
— CINCHAPPS

1
나를 위해 고쳤다. 이것은 비슷한 문제를 많이 해결하는 것 같습니다 ...
— Rob L

이것은 나를 위해 일한 것입니다. 다시 내 문제는 디버깅 중이었습니다.
— Abi P

1
내 영웅! 이것은 며칠 동안 나를 괴롭 혔습니다!
— Godrules500

이것은 확실히 작동합니다 :)
— 필립스

28

@ Lex Li 덕분에 그는 나에게 해결책을주었습니다.

웹 응용 프로그램을 실행하기 위해 Visual Studio에서 IISExpress를 시작하기위한 모든 설정이 포함 된 메타베이스 파일 인 applicationhost.config에 문제가있었습니다.

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
나는 같은 문제가 있었고 이것을 고쳤지만 launchSettings.json의 iisExpress에서 "applicationUrl"속성을 수정하면 VS가 두 번째 항목이 자동으로 추가 된 것을 알았습니다. 왜 이런 일이 일어날 지 잘 모르겠습니다.
— Richie

@Richie VS의 버그 인 것 같습니다. URL을 변경할 때 이전 앱을 삭제하지 않습니다. URL은 앱이 처리중인 상태에서 실행되어야합니다. 여기에 developercommunity.visualstudio.com/content/problem/699245/… 보고서가 있습니다 . 낮은 우선 순위로 닫히지 않았는지 봅시다.
— andre_ss6

18

다음을 수행했을 때 동일한 오류가 발생했습니다.

  1. 두 개의 별도 asp.net 핵심 웹 사이트를 게시했습니다.
  2. IIS에서는 "기본 웹 사이트"아래에 각각 (1)의 각 게시 폴더에 물리적 경로가 설정된 두 개의 웹 사이트를 만들었습니다.
  3. 이제 내가 여는 사이트 중 어느 것이 먼저 작동하고 두 번째 사이트에서 오류가 발생합니다.

문제:

두 사이트 모두 "기본 웹 사이트"에 있기 때문에이 오류의 원인 인 DefaultAppPool을 사용하고 있습니다. 사이트가 "기본 웹 사이트"에 없지만 동일한 앱 풀을 사용하는 경우 동일한 오류가 발생합니다.

해결책:

에서 언급 한 바와 같이 문서 ,

이 오류를 해결하려면 별도의 IIS 응용 프로그램 풀에서 앱을 실행하십시오.

나를 위해이 문제는 각 사이트에 대해 별도의 앱 풀을 사용하기 시작했을 때 해결되었습니다.


2
다른 사람들이 아니라 효과가있었습니다. 감사.
— Erdogan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.