-
[ASP.NET Core] "An error occurred while starting the application." 떴을 때 상세 오류 확인방법.NET/개념 및 유용한 팁 2021. 1. 9. 11:28반응형
ASP.NET Core 기반 웹서비스를 개발한 후, IIS에 올려 정식서비스 오픈을 준비중이었다. 그런데 Kestrel 과 개발PC 내 IIS 에선 정상동작하던 웹 서비스가 실제 구축할 서버에서는 아래와 같은 메시지가 떴다.
"An error occurred while starting the application."
Dotnet core 호스팅 번들을 다시설치해보고, 서버도 껐다 켜보고, Core SDK도 설치해봤지만 해결되지 않던 중 stackoverflow에서 아래와 같은 방법을 통해 원인을 찾아보는 방법을 알게되었다.
총 2가지를 수정해야 한다.
Program.cs
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.CaptureStartupErrors(true) .UseSetting("detailedErrors", "true") .UseStartup<Startup>(); webBuilder.UseIISIntegration(); // OutOfProcess IIS })
stackoverflow에선 public static IWebHost BuildWebHost 함수를 수정했지만 visual studio 2019 Net core 3.1 에서 제공하는 개발템플릿에선 CreateHostBuilder 함수가 자동생성되므로 해당 함수를 수정했다.
소스 수정 후 파일 배포를 하면 배포 폴더 내 web.config 파일이 생성되어있다. 해당 파일을 아래와 같이 수정한다.
web.config
<aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables> </aspNetCore>
그리고 IIS에 적용시키면 "An error occurred while starting the application." 만 표시되던 오류는 정확하게 어디가 문제인지 상세한 로그로 바뀌어 표시된다.
내 경우는 Kestrel에선 직접 접근이 가능하던 시스템변수가 IIS에선 권한문제로 접근이 불가능해져서 생긴 문제였다. 해당 소스가 원인임을 확인하고 수정하니 웹 서비스가 정상적으로 동작했다.
반응형'.NET > 개념 및 유용한 팁' 카테고리의 다른 글
[.NET] 간략한 메일(Mail)발송 프로그램 예제 (0) 2021.01.19 [ASP.NET Core] 배포환경에서 File Download 기능에 An unhandled exception has occurred while executing the request. 오류 발생하는 현상 (0) 2021.01.15 [Entity Framework] MySQL 에서 Entity Framework 사용 (0) 2020.03.16 [Async/Await] Invoke보다 간편하게 UI 접근하기 (2) 2019.12.19 [WCF] 3. 이중계약으로 콜백기능 구현하기 (0) 2015.04.05