ASP..Net core로 WebAPI 서버를 자주 개발하는데 종종 Angular로 만든 프론트를 wwwroot 폴더에 넣어서 함께 종종 배포하곤 합니다. 이 때, Angular web app에서 별도로 routing을 하는 경우 ASP.Net에서 먼저 http 요청을 처리하기 때문에 브라우저에서 페이지 생신시 요청되는 url이 WebAPI에서 알지 못하는 주소라서 404 Not Found를 뿜어냅니다. 이럴 때 root 경로로 redirect 해주면 간단히 해결됩니다. app.Use(async (context, next) => { await next(); if (context.Response.StatusCode == 404) { context.Request.Path = "/"; await next();..
.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..
방법 1. appsettings.json 파일에 아래와 같이 Kestrel 설정을 추가 시킨다. "Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:5000" }, "Https": { "Url": "https://localhost:5001" } } } 방법2. Program.cs 파일에서 직접 주소를 입력한다. await app.RunAsync("http://localhost:5000"); 더 자세한 내용은 아래 마이크로소프트 문서 참고. https://learn.microsoft.com/ko-kr/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-7.0 ASP.NET Cor..
NuGet packge manager에서 NLog.Web.AspNetCore 패키지를 검색해서 설치해줍니다. 검색이 귀찮으면 프로젝트 파일에 직접 써넣습니다. Program.cs 파일에 아래 코드를 추가합니다. using NLog.Web; ... // NLog builder.Logging.ClearProviders(); builder.Logging.SetMinimumLevel(LogLevel.Trace); builder.Host.UseNLog(); ... var app = builder.Build(); 아래와같이 NLog.config 파일을 작성합니다. 이제 ILogger 인터페이스로 쓰여진 모든 log 메세지들도 NLog로 redirect되므로 NLog의 logging 함수들을 사용해도 되고 ILogg..