가상디렉토리에 프로젝트를 만들어서 올렸더니
HTTP Error 500.0 - ANCM In-Process Handler Load Failure
이게 무조건 발생하는 것은 아니고 닷넷 코어 2.2이상을 사용 시 가상디랙토리 사용 시 특정 상황에서 발생합니다.
'InProcess'는 IIS 응용프로그램 풀에서 동작합니다.
(참고 : Rick Strahl님 블로그 - ASP.NET Core In Process Hosting on IIS with ASP.NET Core )
'InProcess'를 사용하고 있을때 'dotnet.exe'에서 사용하려고 하면 발생한다고 합니다.
일반적인 상황에서는 'InProcess'를 권장한다고 합니다.
간한 하게 'web.config'에서 'hostingModel'를 수정해줍니다.
(참고 : Microsoft Docs - ASP.NET Core 모듈 )
hostingModel="OutOfProcess"
이렇게 수정하고 해당 응용프로그램 풀을 재시작해 줍니다.
프로젝트 속성 > 디버그 > 호스팅 모델
을 바꿔주면 됩니다.
근데 버전에 따라 옵션이 안 먹기도 하더라고요;;;;
그럴 때는 프로젝트 파일을 수정해야 합니다.
프로젝트 파일을 열어줍니다.
아래 코드를 참고하여 파일을 수정해줍니다.
1 2 3 4 | <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel> </PropertyGroup> | cs |
옵션을 변경했는데 다른 오류가 나는 경우가 있습니다.
HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
이건 웹컨피그 자체를 다시 생성해야 합니다.
상황에 따라서 프로젝트에서 개시하여 생성된 웹컨피그를 사용해야 할 수 있습니다.
닷넷 코어 2.2부터 생긴 기능이라 그전에는 나지 않던 오류입니다.
가상디랙토리도 막 많이 쓰진 않기 때문에 자주 볼 수 있는 오류는 아닐 듯 하네요 ㅎㅎㅎ