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.