HTTP 500.0 - 명령행에서 실행한 ASP.NET Core 응용 프로그램을 실행하는 방법
.NET 5 예제를 명령행에서 iisexpress.exe를 이용해 실행하면,
"C:\Program Files\IIS Express\iisexpress.exe" /config:"c:\temp\TestWebApp\.vs\TestWebApp\config\applicationhost.config" /site:"razor_50_sample" /apppool:"razor_50_sample AppPool"
이런 오류가 발생합니다.
HTTP Error 500.0 - ASP.NET Core IIS hosting failure (in-process)
Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect
For more information visit: https://go.microsoft.com/fwlink/?LinkID=2028526
동시에 이벤트 로그에는 다음의 2개 항목이 남습니다.
Failed to start application '/LM/W3SVC/9/ROOT', ErrorCode '0x8007023e'.
Application 'C:\temp\TestWebApp\razor_50_sample\' failed to start. Exception message:
Executable was not found at 'C:\temp\TestWebApp\razor_50_sample\%LAUNCHER_PATH%.exe'
그렇습니다, 환경 변수 "%LAUNCHER_PATH%"에 EXE 파일의 경로가 있어야 하기 때문입니다.
LAUNCHER_PATH=C:\temp\TestWebApp\razor_50_sample\bin\Debug\net5.0\razor_50_sample.exe
참고로, LAUNCHER_PATH와 ANCM_LAUNCHER_PATH의 차이점은,
Allow ANCM to use environment variables for LAUNCHER_ARGS and LAUNCHER_PATH
; https://github.com/dotnet/aspnetcore/issues/19451
위와 같은 이유로 ANCM_LAUNCHER_PATH의 우선순위가 더 높습니다.
위의 경우는 iisexpress에서 발생한 경우였지만, IIS인 경우에는 다음과 같은 식으로 오류 상황이 전개됩니다.
ASP.NET Core Web Application을 IIS에서 호스팅하는 방법
; https://www.sysnet.pe.kr/2/0/11120
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]