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..
※. Visual Studio 2022 기준 스크린 샷입니다. 1. Visual Studio를 열고 새로운 WPF 프로젝트를 하나 생성합니다. WPF로 검색해서 WPF Application 프로젝트 템플릿을 찾아서 선택합니다. 프로젝트 생성 경로와 솔루션 이름 프로젝트명을 지정합니다. 여기서는 .Net 6.0 이상을 기준으로 설명하므로 6.0을 선택합니다. 프로젝트 생성이 완료되면 Solution Explorer에 아래와같이 생성된 솔루션과 프로젝트 내의 파일을 확인합니다. 2. NuGet Package 설치하기 NuGet Package Manager에서 아래 패키지들을 설치하거나 Solution Explorer에서 프로젝트(MyTestApp)를 double-click해서 프로젝트 파일을 열어 아래의 P..
일반적으로 여러개의 class library혹은 여러개의 class 내부에서 NLog를 사용해 log message를 생성해 내게되는데, 매번 log message가 발생 할 때 마다 해당 메세지를 가공해서 GUI상에 뿌려준다거나 GRPC나 WebSocket 혹은 Kafka같은 Message Broker로 publish하는 기능이 필요할 때가 있습니다. 이럴 때 아래와같이 NLog의 MethodCallTarget 클래스를 사용하면 쉽게 구현이 가능합니다. // Callback 함수를 정의합니다. var target = new MethodCallTarget("LogNotify", async (logEvent, parameters) => { // 여기서 본인이 원하는 처리를 하면 됩니다. 내부에 비동기 호출..
1. 특정 행들이 실제로 숨겨진 상태인 경우 숨김 해제할 행을 선택해서 마우스 우측 버튼을 눌러서 숨김 해제를 해주면 됩니다. 2. 가려진 행들의 높이가 작게 설정되어 있어서 보이지 않는 경우 높이를 설정할 행들을 선택 후, 마우스 우측 버튼을 눌러 행 높이 메뉴 선택 행 높이를 16.5로 설정 후 확인을 누르면 아래와같이 안보였던 행들이 보여지게 됩니다. 3. 자동 필터가 걸려있는 경우. (컬럼 필터에 필터가 설정되어 있지않은 상태인데도 가려진 경우) 이 경우 특징이 좌측 행번호가 푸른색으로 표시됩니다. 단축키 Ctrl + Shift + L을 누르거나 혹은 툴바 메뉴에서 아래와같이 필터를 해제하면 됩니다.
1. 고전적인 방법 임시 변수 하나를 더 선언한 다음 두 변수 중 하나의 값 혹은 참조를 복사해두고 swap 하는 방법 var a = 10; var b = 20; var temp = a; a = b; b = temp; 2. 현대적인 방법 (C# 7.0 이상) 튜플(Tuple)을 사용하면 한 줄로 표현이 가능합니다. (b, a) = (a, b)