[.net-core] HTTP 오류 500.30-ANCM In-Process 시작 실패

성능을 약 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에서만 사용할 수 있다고 생각합니다.



답변

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)


답변

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’로 변경합니다.

여기에 이미지 설명 입력


답변

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

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


답변

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

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


답변

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


답변

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

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


답변

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

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