HTTP 오류 500.30-ANCM In-Process 시작 실패


115

성능을 약 400 % 향상시키는 것으로 추정되는 .net core sdk 2.2와 함께 제공되는 새로운 기능을 실험하고있었습니다.

인상적이어서 ABP ( ASP.NET Boilerplate ) 프로젝트 에서 사용해 보았습니다.

Template asp.net core mvc 4.0.2.0

web.mv.cproj파일에 다음을 추가했습니다.

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
  </ItemGroup>

안타깝게도이 버전의 ABP 프레임 워크가 호환되지 않는다고 생각합니다. 프로젝트가 단순히 실행되지 않고 다음을 던지기 때문입니다. (결국)

HTTP 오류 500.30-ANCM In-Process 시작 실패

stdoutLogEnabled="true"web.config에서 설정 하고 다시 시도한 후 로그를 확인 했지만 항목이 없습니다.

프로세스 설정에서 asp.net 코어에 대해 현재 ABP를 실행하는 데 성공한 사람이 있습니까?

나는 이것이 ABP vNext에서만 사용할 수 있다고 생각합니다.


POST 속성이없는 공용 기능이 있는지 확인하십시오. 이 비공개
모한

답변:


133

ASP.NET Core 2.2에서는 IIS InProcess 호스팅 이라는 IIS 와 함께 새로운 서버 / 호스팅 패턴이 출시되었습니다 . inprocess 호스팅을 사용하려면 csproj 요소 AspNetCoreHostingModel이 추가되어 hostingModel을 web.config 파일에서 inprocess로 설정합니다. 또한 web.config는 Inprocess 호스팅에 필요한 AspNetCoreModuleV2라는 새 모듈을 가리 킵니다.

배포중인 대상 머신에 ANCMV2가없는 경우 IIS InProcess 호스팅을 사용할 수 없습니다. 그렇다면 올바른 동작은 dotnet 호스팅 번들 을 대상 컴퓨터에 설치하거나 AspNetCoreModule로 다운 그레이드하는 것입니다.

출처 : jkotalik (Github)

csproj에서 섹션을 변경해보십시오 (텍스트 편집기로 편집).

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

다음에 ...

 <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
 </PropertyGroup>

소스 (Github)


1
귀하의 제안을 사용했지만로 변경했으며 InProcess제대로 작동하는 것 같습니다. 감사!
Jazb

4
10x life savior
Valentin Petkov 2019 년

2
또한 OutOfProcess은 Web.config의에서 호스팅하여 InProcess을 변경했다
마테우스 Migała을

1
AspNetCoreModuleVS2017에서 중단 디버그 출력 을 포함한다는 점에 유의하고 싶습니다 . https://github.com/aspnet/AspNetCore/issues/6609
Eric

1
이것은 사이트가 IIS에서 실행되는 방식을 근본적으로 변경합니까?
hanzolo 19

50

ASP.NET Core 3.0+ 및 Visual Studio 19 버전 16.3+에서 프로젝트 .csproj 파일의 섹션은 다음과 같습니다.

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

AspNetCoreHostingModel 속성이 없습니다. 프로젝트 속성에서 호스팅 모델 선택을 찾을 수 있습니다. 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭하십시오. 속성을 클릭합니다.

여기에 이미지 설명 입력

디버그 메뉴를 클릭합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

아래로 스크롤하여 호스팅 모델 옵션을 찾습니다.

여기에 이미지 설명 입력

Out of Process를 선택합니다.

여기에 이미지 설명 입력

프로젝트를 저장하고 IIS Express를 실행합니다.

서버 배포를위한 업데이트 :

서버에 애플리케이션을 게시하면 아래와 같은 웹 구성 파일이 있습니다.

여기에 이미지 설명 입력

아래와 같이 'hostingModel'의 값을 'inprocess'에서 'outofprocess'로 변경합니다.

여기에 이미지 설명 입력


서버에 게시 한 후 'hostingModel'의 값을 'inprocess'에서 'outofprocess'로 변경했지만 이제이 오류가 발생합니다. HTTP Error 502.5-ANCM Out-Of-Process Startup Failure
waki68

값을 변경하기 전에 괜찮습니까?
Mohammad Sadiqur Rahman

아니, 괜찮 아니지만, 호스팅 번들 설치하여 해결
waki68을

web.config 파일이없는 경우 어떻게 할 수 있습니까?
MyDaftQuestions

@MohammadSadiqurRahman 이것은 나를 위해 일했습니다. 그러나 outofprocess를 OutOfProcess로 변경하면 도움이 될 수 있습니다. 내 하루 :) 절약 주셔서 감사합니다
M HANIF을

22

제 경우에는 최근에 appstettings.json 파일에서 데이터베이스 연결 문자열을 변경했습니다. 로깅 또는 오류 포착 없이는이 오류가 "HTTP 오류 500.30-ANCM In-Process 시작 실패"오류를 일으키는 것으로 의심됩니다.

나는 x-freestyler와 Tahir Khalid 사이의 교환을 발견했습니다. Tahir가 스타트 업에서 IOC 문제를 제안했습니다. 내 시작이 최근에 변경되지 않았지만 내 appstettings.json이 있었기 때문에 내 appstettings.json의 연결 문자열이 문제의 원인이라고 판단했습니다. 잘못된 연결 문자열을 수정하고 문제가 해결되었습니다. 전체 커뮤니티 덕분입니다.


4
공유해 주셔서 감사합니다. 내 appsettings.json을 확인하고 잘못된 유형을 발견했습니다. 그것은 문제를 해결했습니다.
heringer 19

비슷하게; 내 appsettings.json 파일에 '{'가 누락 된 경우 "HTTP 오류 500.30-ANCM In-Process 시작 실패"메시지가 나타납니다
JTech

감사합니다. 연결 문자열의 appsettings.json에서 로컬 sqlexpress 연결 문자열에서 "\"를 "\\"로 이스케이프하지 못했습니다. 따라서 수정 전에 "Server = machine01 \ SQLEXPRESS; xxxx"가 있고 이제 "Server = machine01 \\ SQLEXPRESS; xxxx"가 완벽하게 실행되고 있습니다!
bau

Event Logs잘못된 JSON 설정을 나타내는 시스템 을 볼 때까지 솔직히 내 문제를 알아 차리지 못했습니다 .
vandsh

@heringer가 경험 한 것과 유사하게 연결 문자열에 잘못된 문자가 있습니다. 그것을 제거하면 문제가 해결되었습니다.
Alexander Santos

12

Visual Studio를 사용 중이고 실행중인 인스턴스가있는 경우 모두 닫습니다.

.vsVisual Studio 솔루션 ( .sln파일)이 있는 하위 폴더를 찾아야 합니다. 폴더를
삭제하고 .vsIn-process 호스팅 모델로 다시 시도하십시오.


10

ASP.NET Core 2.2 이상 : In-process 호스팅 모델을 사용하는 64 비트 (x64) 자체 포함 배포의 경우 32 비트 (x86) 프로세스에 대한 앱 풀을 사용하지 않도록 설정합니다.

IIS 관리자> 응용 프로그램 풀의 작업 사이드 바에서 응용 프로그램 풀 기본값 설정 또는 고급 설정을 선택합니다. 32 비트 응용 프로그램 활성화를 찾아 값을 False로 설정합니다.

출처 : https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.0#create-the-iis-site


1
이 변경으로 ASP.NET Core 3.0에서 3.1로 변환하는 문제가 해결되었습니다
SteveC

Dotnet core 3.1 : 내 pubxml에서 SelfContained를 false로 변경하고 오류가 발생했습니다. 이 문제가 해결되었습니다.
Andrew Cowenhoven

6

Windows 10을 실행하는 개발 컴퓨터에서 동일한 오류가 발생했습니다. dotnet 코어 호스팅 번들을 설치 한 후에도 오류가 사라지지 않았습니다. 자세한 오류를 얻으려면 이벤트 뷰어로 이동해야했습니다. 귀하의 근본적인 문제 (있는 경우)가 내 문제와 다를 수 있습니다. 요점은 Windows 시스템을 사용하는 경우 이벤트 뷰어가 세부 정보를 제공한다는 것입니다. 이것이 누군가를 돕기를 바랍니다.

이벤트 뷰어가 오류 세부 정보를 제공했습니다.


5

응용 프로그램에서 Windows 로그를 살펴 보았습니다. 오류 메시지와 스택 추적을 표시했습니다. node_modules라는 폴더가 없다는 것을 알았습니다. 나는 그 폴더를 만들고 그것을 고쳤다.

web.config 또는 프로젝트 파일을 변경하지 않았습니다. 내 .NETCoreApp 버전은 3.1이었습니다.


자세한 오류 메시지를 찾기 위해 Windows 로그를 찾아 보면 +1-정말 빠르게 수정하는 데 도움이되었습니다. 감사합니다!
tristankoffee

4

경우에 따라 JSON 설정 파일의 구문 분석을 손상시키고 방지하는 오타였습니다.


그게 어떻게 가능했을까요?
tnk479

3

.cproj 파일에서 AspNetCoreHostingModel 줄을 제거하면 저에게 효과적이었습니다. 잘 작동하는 다른 프로젝트에는 그런 라인이 없었습니다.

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

2
나는 실제 문제가 무엇인지를 가리기 때문에 문제를 해결하기 위해 물건을 제거하는 것을 좋아하지 않지만이 글에 대해 x-freestyler에게 감사합니다. 종속성이 등록되지 않았습니다!
Tahir Khalid

3

최근 2.0에서 3.0으로 업그레이드 한 .Net Core 프로젝트에서 OutOfProcess 호스팅에서 InProcess 호스팅으로 전환하려고 할 때 비슷한 문제가 발생했습니다.

계속해서 실제로 도움이되는 오류가 없었고 문제를 해결하기 위해 며칠을 보낸 후 결국이 문제로 고투하는 다른 사람에게 도움이 될 경우 공유 할 것이라고 생각한 사례에 대한 수정 사항을 찾았습니다.

나에게는 몇 가지 Microsoft 에 의해 발생했습니다. 패키지 .

버전이 3.0.0 미만인 참조 된 Microsoft.AspNetCore 패키지를 모두 제거한 후 (이에 대해 3.0.0 이상으로 업그레이드 할 수 없음)이 오류는 더 이상 발생하지 않습니다.

이것들은 내가 제거한 패키지였습니다.

<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.8" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />

버전이 3.0.0 이상인 다른 모든 Microsoft.AspNetCore 패키지는 정상적으로 작동했습니다.



2

이 게시 프로필 설정이 수정되었습니다.

게시 프로필 구성-> 설정-> 사이트 확장 옵션->

  • [x] ASP.NET Core 사이트 확장을 설치합니다.


2

질문에서와 동일한 오류 메시지를 제공하는 다른 문제를 발견했습니다. 프로젝트 파일을 변경하기 전에 서비스가 제대로 등록되었는지 확인할 수 있도록 여기에서 공유하고 있습니다.

나는 또한 .netcore 2.2를 실행 중이며 동일한 오류 메시지를 받았으므로 선택한 답변에서와 같이 프로젝트 파일을 InProcess에서 OutOfProcess로 변경했습니다. 그 후 "구현 유형을 인스턴스화 할 수 없음"을 받았을 때 문제의 실제 원인을 찾았습니다. 그 원인은 다음과 같습니다.

services.AddScoped<IMyService, IMyService>();

대신에

services.AddScoped<IMyService, MyService>();

관련 게시물 : 내 일반 서비스에 대해 "구현 유형을 인스턴스화 할 수 없음"오류가 발생하는 이유는 무엇입니까?


1
이것도 제 경우였습니다. 감사.
Felipe Romero

1

InProcess 호스팅을 사용하여 IIS에서 내 asp.net 핵심 응용 프로그램을 호스팅하기로 결정하는 데 하루 종일 자신과 싸우고 나서 마침내이 문제를 해결하게되어 자랑스럽고 안심이됩니다. 문제를 해결하기 위해 최선을 다한 동일한 포럼, 블로그 및 SO 질문을 반복적으로 몇 시간 동안 반복했지만 위에서 언급 한 모든 접근 방식을 따른 후에도 여전히 멈췄습니다. 이제 여기서 나는 그것을 해결 한 나의 경험을 설명 할 것이다.

1 단계 : IIS에서 웹 사이트 만들기

2 단계 : 웹 사이트의 AppPool에 .Net CLR 버전이 "관리 코드 없음"으로 설정되어 있고 AppPool의 "32 비트 응용 프로그램 활성화"속성이 false로 설정되어 있는지 확인합니다.

3 단계 : 프로젝트가 .Net core 2.2를 참조하는지 확인

4 단계 : ConfigureServices 메서드 내의 startup.cs 파일에 다음 줄을 추가합니다.

services.Configure<IISServerOptions>(options =>
{
     options.AutomaticAuthentication = false;
});

6 단계 : 다음 Nuget 패키지 추가

Microsoft.AspNetCore.App v2.2.5 이상

Microsoft.AspNetCore.Server.IIS v2.2.2 이상

7 단계 : .csproj 파일에 다음 줄 추가

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

8 단계 : 코드 빌드 및 게시 (바람직하게는 x64 비트 )

9 단계 : etc / hosts 파일에 웹 사이트 호스트 이름을 추가했는지 확인

10 단계 : World Wide Web 게시 서비스 다시 시작

이제 asp.net 핵심 애플리케이션을 테스트하고 InProcess 호스팅을 사용하여 호스팅되어야합니다. 앱이 InProcess 모드를 사용하여 호스팅되는지 확인하려면 응답 헤더를 확인하고 다음 줄을 포함해야합니다.

서버 : Microsoft-IIS / 10.0 (IIS 버전은 시스템에 영향을 줄 수 있음)

업데이트 : 작동하는 데 필요한 ASP.Net Core Hosting Bundle 다운로드 및 설치


1

AspNetCoreModuleV2 용 전용 앱 풀을 실행하여 내 문제를 해결했습니다.

기술:

HTTP Error 500.34 - ANCM Mixed Hosting Models Not Supported

동일한 앱 풀에서 여러 애플리케이션을 실행하고있었습니다. 일부 응용 프로그램이 실행 중이었습니다.

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />

오류를 발생시킨 응용 프로그램이 AspNetCoreModuleV2를 실행 중이었습니다.

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

AspNetCoreModuleV2 전용 새 앱 풀을 만들었고 내 문제가 해결되었습니다.


1

2.2에서 3.1로 업그레이드 할 때 Azure App Service에서이 문제가 발생했습니다. 그 이유는 "ASP.NET Core 2.2 (x86) 런타임"확장이 App Service에 설치 되었기 때문입니다. Kudu에서 해당 확장을 제거하면 문제가 해결되었습니다!


1

와,이 질문에 대한 많은 답변이 있지만 동일한 문제가 있었고 내 해결책은 내가 여기서 읽은 것과 달랐으며 매우 간단했습니다.

적절한 환경 설정을 사용하여 azure에 앱을 배포하는 데 문제가 있었기 때문에 launchsettings.json 파일을 엉망으로 만들고 IIS 프로필의 ASPNETCORE_ENVIRONMENT 변수 값을 "개발"에서 "생산"으로 변경했습니다. . 다시 "개발"로 변경하면 문제가 해결되었습니다.

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }

1

제 경우에는 appsettings.json 파일의 잘못된 값이었습니다. 가치는 .\SQLEXPRESS내가 그것을 변경 한 후에 작동했습니다..\\SQLEXPRESS


저도 형식이 잘못된 appsettings.json 파일로 인해 발생했습니다!
fosbie


0

응용 프로그램이 충돌하기 때문입니다. 이 예외에 시간을 절약하는 사람!

그리고 오류 코드는 초기 단계에서 파일을 찾을 수 없기 때문에 예외가 발생한다고 말합니다. 환경 설정 섹션을 참조하십시오. 내 시나리오에서는 다음 코드를 변경하면 작동했습니다.

var environment = whb.GetSetting("environment");

...에

var environment = "Development";// whb.GetSetting("environment");

appsettings.development.json이 있지만 appsettings.production.json이 없었기 때문입니다. 올바른 위치에서 다른 것을 찾고 있기 때문에 파일을 찾을 수없는 이유.


0

.Net Core 2.2를 사용하면 당연히 더 빠르기 때문에 InProcess 호스팅 모델을 사용할 수 있어야합니다. IIS와 앱의 Kestrel 서버 사이에 추가 HTTP 홉없이 모든 것이 IIS에서 처리됩니다. 다음 태그를 추가하는 것이 좋습니다. AspNetCoreModuleV2 새로운 AspNetCoreModuleV2와 이전 AspNetCoreModule 옵션을 확인하세요. 해야 할 또 다른 중요한 일은 Windows 응용 프로그램 이벤트 로그를 검사하여 원인을 식별하는 것입니다. 오류 메시지가 모호 할 수 있지만 때로는 오류를 일으킨 코드의 정확한 줄 번호를 가리 킵니다. 또한 TFS와 함께 CI / CD를 사용하는 경우 appsettings.json 파일에 지정된 값으로 제대로 대체되지 않은 환경 변수가있을 수 있으며 이는 저에게 예외 소스 중 하나였습니다.


0

Program.cs파일에 문제가 있습니다. AddAzureKeyVault오래 전에 삭제 된 것과 연결하려고했습니다 .

결론 :

This error could come to due to any silly error in the application. Debug step by step your application startup process.

0

제 경우에는 Azure의 특정 환경에서 실행할 때 실패했지만 dev에서는 제대로 실행되는 마이그레이션이있었습니다. 시작의 일부로 마이그레이션을 실행하도록 구성된 서비스가 있으므로 웹앱의 실제 시작이 실패합니다.

문제를 발견하기 위해 환경에서 수동으로 마이그레이션을 실행 한 다음 해당 환경의 데이터 차이를 처리하도록 조정했습니다.

DB에서 직접 수동으로 실행하지 않고도 마이그레이션 오류를 볼 수있는 방법을 아는 사람이 있다면 유용 할 것입니다.


0

나는 똑같은 문제가 있었다. 그것은 내 편에서 어리석은 실수였습니다.

ServiceCollection에서 등록을 시도했습니다. abstract class

services.AddScoped<IMyInterface, MyClasss>();

어디 MyClass있었어abstract나를 위해 알려지지 않은 이유 습니까?

그래서 여러분이 있다면 HTTP Error 500.30 - ANCM In-Process Start Failure 그냥 검토ServiceCollection


0

나에게는 모든 것이 잘되었지만 다른 VS 버전으로 게시했기 때문에 문제가 발생했습니다. (최신 VS 2019 (16.4.2)). VS 2017로 응용 프로그램을 게시하면 제대로 작동합니다.

실제 문제는 해당 종속성 JSON 파일 (예 :에 MyWebApp.deps.json게시 폴더에). 누군가에게 도움이되기를 바랍니다.

여기에 이미지 설명 입력


최근에 게시 된 폴더에서 파일을 사용할 수 있음을 확인했습니다. 그러나 evenLogs에서 오류 메시지는이 dep.json 파일이 JSON 파일 경로에 언급 가리키고 runtimes/win-x64/native있는지이 같은 폴더에 또는 어떤 경로를 가리키는하지
Premchandra 싱

내가 evenlog에있는 실제 문제는 Could not find inprocess request handler. Captured output from invoking hostfxr: Error: An assembly specified in the application dependencies manifest (Cues.Web.deps.json) was not found: package: 'runtime.win-x64.Microsoft.NETCore.App', version: '2.2.8' path: 'runtimes/win-x64/native/mscordaccore_amd64_amd64_4.6.28207.03.dll'
Premchandra 싱

0

Plz는 전체를 이해하기 위해이 동일한 스레드에서 내 이전 답변을 참조하십시오. 여러 답변 죄송합니다

추가 조사 후 VS 2019가 응용 프로그램을 게시하기 위해 2.2.8 인 .net core 2.2의 최신 패치 (VS의 기본 동작)를 선택했기 때문에 문제가 발생했습니다. 다음을 사용하여 선택한 특정 버전으로 제한 할 수 있습니다.

<RuntimeFrameworkVersion>2.2.4</RuntimeFrameworkVersion>

여기를 참조하십시오 . 이것은 최신 패치가 적용되지 않았지만 마침내 내 문제를 해결했습니다. 모든 VS 2017 또는 VS 2019에서 빌드 할 수 있으며 둘 다 .net 코어 2.2.0 런타임 버전 용 애플리케이션을 게시합니다.

여기에 이미지 설명 입력


0

동일한 오류가 발생했으며 Microsoft.Extension.Primitives 버전의 패키지가 .net 코어 버전과 호환되지 않았습니다. 그리고 이것은 내 프로젝트에서 참조하는 프로젝트 참조 중 하나에서 참조했습니다.

해당 프로젝트에서 Microsoft.Extension.Primitives를 변경 한 후. 이 문제가 해결되었습니다.

Azure 이벤트 로그에서 발생하는 오류와 패키지 참조와 관련이 있는지 확인합니다. 내가 언급 한 위의 것을 시도하십시오.

너겟 패키지는 .net 버전과 밀접하게 결합되어 있기 때문입니다. 프로젝트를 참조하는 모든 패키지가 .net 버전과 밀접하게 연결되어 있는지 확인하기 만하면됩니다.


0

저에게는 WebHostBuilder를 만든 복잡한 앱 시작이있었습니다. 이것은 잘 작동했지만 InProcess 호스팅 모드를 시도했을 때 실패했습니다. WebHostBuilder에서 호출하지 못한 것이 있다고 가정합니다. 그래서 저는 항상 WebHost.CreateDefaultBuilder (args)를 호출했는지 확인한 다음 기본적으로 새 앱 템플릿과 마찬가지로 추가 변경을 수행합니다.

또는 IHostBuilder (IWebHostBuilder 아님)를 사용하는 ASP 코어 3.1 템플릿의 경우 ConfigureWebHostDefaults를 호출합니다.

 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                // add stuff here
                webBuilder.UseStartup<Startup>();
            });

0

제 경우에는 위의 솔루션이 작동하지 않았습니다. 그러나 솔루션 탐색기에서 myproject.vspscc 파일을 제거하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.