비주얼 스튜디오에서 실행하던 ASP.NET Core (.NET Framework) 응용 프로그램을 명령행에서 실행하는 방법 (2)
예를 들어, Blazor Server App을 비주얼 스튜디오에서 생성해 실행해 보면 다음과 같은 구성으로 iisexpress.exe가 실행됩니다.
실행 파일: C:\Program Files\IIS Express\iisexpress.exe
인자: /config:"D:\docker_sample\DockerNetSamples\.vs\DockerNetSamples\config\applicationhost.config" /site:"BlazorSample" /apppool:"BlazorSample AppPool"
기본 디렉터리: D:\docker_sample\DockerNetSamples\BlazorSample\
그런데, 이 환경 그대로 (비주얼 스튜디오가 아닌) 명령행으로 직접 실행하면 다음과 같은 식의 오류가 발생할 수 있습니다.
HTTP Error 500.0 - ANCM In-Process Handler Load Failure
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
이에 대한 대응 방법은 전에도 정리했었지만,
비주얼 스튜디오에서 실행하던 ASP.NET Core (.NET Framework) 응용 프로그램을 명령행에서 실행하는 방법
; https://www.sysnet.pe.kr/2/0/11394
IISExpress가 아닌, 그냥 빌드된 대상 웹 응용 프로그램의 exe 버전을 그대로 실행해도 됩니다. 그래도 굳이 비주얼 스튜디오처럼 실행하고 싶다면 환경 변수로 "ANCM_LAUNCHER_PATH"를 다음과 같이 지정해도 됩니다.
SET ANCM_LAUNCHER_PATH=D:\docker_sample\DockerNetSamples\BlazorSample\bin\Debug\netcoreapp3.1\BlazorSample.exe
위와 같이 지정하고 다시 IISExpress를 명령행에서 직접 실행하면 이후 웹 응용 프로그램이 잘 동작합니다.
참고로, ANCM_LAUNCHER_PATH의 경우 .NET Core 버전에 따라 "LAUNCHER_PATH"가 될 수도 있으므로
Process Explorer를 이용해 비주얼 스튜디오가 실행한 iisexpress의 환경 변수로 확인할 수 있습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]