.Net 6 에서 ASP.Net core 프로젝트를 빌드해서 Windows Service에 등록 한 다음 서비스를 시작했는데 에러가 발생했다면 우선 Event Log Viewer 에서 Exception 메세지를 먼저 확인 합니다. Windows Logs -> Application 에서 .Net Runtime Error 내용을 들여다 보면 Exception이 발생한 코드의 위치가 나오는데, 해당 코드가 appsettings.json에서 읽어온 configuration을 access하는 코드라면 아래 옵션을 추가해서 간단히 해결 가능합니다. var builder = WebApplication.CreateBuilder(new WebApplicationOptions { Args = args, ContentRoo..
ASP.Net core WebAPI 템플릿으로 프로젝트 생성 후 Angular나 React 프로젝트로 frontend를 만들어서 production build된 static files를 WebAPI 프로젝트에 포함시키는 시나리오의 경우 WebAPI 프로젝트 빌드시에 wwwroot 폴더 내 모든 파일이 output이나 publish 경로에 포함되도록 프로젝트 파일을 설정 해줘야 합니다. Visual Studio에서 wwwroot 폴더 하위 파일들 속성 하나하나 설정 하는 방법도 있지만 wwwroot 폴더 내에 새로운 파일이 생긴다던가 이름이 바뀔때마다 재 설정 해줘야하는 번거로움이 생기므로 아래와 같이 프로젝트 파일에 한 줄 추가하면 해결 됩니다.
WebAPI 프로젝트 템플릿으로 프로젝트 생성 후에 기본 호스팅 주소로 html static file이 라우팅 되게 하고 싶을 때, 아래와 같이 UseDefaultFiles()와 UseStaticFiles()를 순서대로 추가해주면 됩니다. ※. 순서가 뒤바뀌면 브라우저에서 서비스 주소만 입력할 경우 index.html로 자동 라우팅이 되지 않고 No Found 오류 뿜어내니까 꼭 순서를 지켜줘야 합니다. (이건 어떻게 보면 정말 병신같은 디자인인듯...) app.UseDefaultFiles(); app.UseStaticFiles();