반응형

C# 37

Fuslogvw 어셈블리 바인딩 실패 추적 도구 사용법

Fuslogvw(Assembly Binding Log Viewer) 사용Fuslogvw.exe는 .NET Framework에서 발생하는 어셈블리 바인딩(로딩) 실패를 추적하는 도구입니다.관리자 권한으로 Developer Command Prompt 열기 -fuslogvw 라고 입력해 Assembly Binding Log Viewer 실행Settings 메뉴에서 “Log bind failures” (또는 “Log all binds”)를 체크하고, 로그를 저장할 경로 설정다시 Windows Service 설치(또는 installutil) 시도Fuslogvw 창으로 돌아와 Refresh 버튼을 클릭실패한 어셈블리 바인딩 기록이 있다면, 항목을 더블 클릭하여 상세 정보 확인

C# 2025.02.18

비동기 환경에서의 스레드 충돌 문제와 해결 방안

WCF와 SDK API의 스레드 문제 및 해결 방법1. 문제의 배경WCF(Windows Communication Foundation)는 기본적으로 호출을 처리하기 위해 고유한 스레드 풀을 활용합니다. 반면, 동기식 호출을 기반으로 작동하는 SDK API 는 특정 스레드에서의 호출을 요구하거나 스레드 상태를 관리합니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다:WCF 호출 스레드와 SDK API 호출 스레드가 동일한 경우, SDK 내부에서 스레드 상태(예: LockState)가 예상치 못한 방식으로 변경되어 오류가 발생.SDK API 호출 중 스레드 상태 충돌로 인해 연결이 끊어지거나 LockStateException과 같은 에러가 발생.2. 문제의 원인2.1 스레드 충돌WCF에서 제공하는 호출 ..

C# 2025.01.05

error MSB4006 에러 해결 -> .net framework 참조 방식 변경

. NET Framework에서 PackageReference로 전환하기. NET Framework는 기본적으로 packages.config 방식을 사용하여 NuGet 패키지를 관리합니다. 이 방식에서는 NuGet 패키지가 packages 폴더에 다운로드되고, 프로젝트는 해당 폴더에서 수동으로 참조 경로를 설정해야 합니다.하지만, 더 현대적이고 효율적인 방식인 **PackageReference**를 사용하면 NuGet 패키지 관리와 참조가 자동화되어 개발 과정이 간소화됩니다. 이 문서에서는 PackageReference 방식으로 전환하는 방법과 그 장점을 설명합니다.PackageReference란?PackageReference는 NuGet 패키지를. csproj 파일 내에서 직접 관리하는 방식입니다. 이..

C# 2024.12.27

.NET Core Model 유효성 검사 응답 처리 방법

. NET Core에서 모델 유효성 검사를 처리할 때, 매번 컨트롤러에 필터를 추가하는 대신, 중앙에서 효율적으로 처리할 수 있는 방법이 있습니다. 바로 InvalidModelStateResponseFactory를 사용하는 것입니다. InvalidModelStateResponseFactory이제. NET Core에서는 InvalidModelStateResponseFactory를 설정하여, 중앙에서 모든 유효성 검사 실패 응답을 처리할 수 있습니다. 적용 방법Startup.cs 또는 Program.cs 파일에 설정 추가:public void ConfigureServices(IServiceCollection services){ services.AddControllers(options => { ..

C# 2024.08.26

C#에서 동기메서드를 비동기 방식으로 처리하는 방법

C#에서 비동기 처리가 지원되지 않는 메서드를 사용해야 하는 경우, 비동기 작업을 효율적으로 처리하기 어려울 수있습니다. 이 글에서는 비동기 처리가 안 된 메서드를 비동기 방식으로 사용해야 하는 상황에서 어떤 접근 방식이 적합한지 알아보겠습니다. 1. 동기 메서드를 Task.Run으로 비동기화동기식으로 동작하는 메서드를 비동기 방식으로 호출하려면 Task.Run을 사용할 수 있습니다.Task.Run은 주어진 작업을 별도의 스레드에서 실행하여, 호출하는 스레드(보통 UI 스레드)를 차단하지 않으면서 작업을 처리할 수 있게 해 줍니다. public void BlockingMethod(){ // 동기적 작업}public async Task CallBlockingMethodAsync(){ await ..

C# 2024.08.22

EF Core 최신 N 연관관계 매핑

EF Core에서 N(Many-to-Many) 관계 매핑Entity Framework Core (EF Core)는 객체-관계형 매퍼(ORM)로, 데이터베이스와 객체 지향 프로그래밍을 연결하는 데 도움을 줍니다. EF Core 5.0 이상 버전에서는 Many-to-Many (N) 관계를 보다 간편하게 설정할 수 있습니다. 이 글에서는 최신 EF Core를 사용하여 Many-to-Many 관계를 설정하고, 이를 활용하는 방법을 설명합니다. 1. Many-to-Many 관계 개요Many-to-Many 관계는 두 엔티티가 서로 여러 관계를 가질 수 있는 경우를 의미합니다. 예를 들어, 학생(Student)은 여러 과목(Course)을 수강할 수 있고, 과목도 여러 학생이 수강할 수 있습니다.  2. 모델 클래스..

C# 2024.07.14

C# 비동기 프로그래밍: 비동기 vs 동기 처리

이 글에서는 비동기와 동기 처리의 차이를 코드 예제를 통해 비교해 보겠습니다.  동기 프로그래밍동기 프로그래밍에서는 각 작업이 순차적으로 실행됩니다. 한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 이러한 방식은 간단하지만, 여러 작업을 동시에 처리해야 할 때 비효율적일 수 있습니다.동기 프로그래밍 예제다음은 동기적으로 아침 식사를 준비하는 코드 예제입니다. 이 코드는 커피를 만들고, 계란을 부치고, 베이컨을 굽고, 토스트를 준비하는 순서로 실행됩니다. C#using System;using System.Diagnostics;using System.Threading.Tasks;namespace SyncExample{ internal class Bacon { } internal class..

C# 2024.07.10

.NET Framework 4.5.2 다운로드

Windows 10 사용 중 이전 버전 (framework 4.5.2) 를 다운로드 하려니 상위 버전이 있다고 다운로드가 되지 않았다. 근데 그건 Runtime 용을 설치 시도했기 때문이었고 개발자용은 설치가 가능했다. https://dotnet.microsoft.com/ko-kr/download/dotnet-framework/net452 .NET Framework 4.5.2 다운로드 | 무료 공식 다운로드.NET Framework 4.5.2 을(를) 사용하여 애플리케이션을 빌드하고 실행하기 위한 다운로드. .NET Framework용 웹 설치 프로그램, 오프라인 설치 프로그램 및 언어 팩 다운로드를 받으세요.dotnet.microsoft.com 위 링크에서 런타임용이 아닌 개발자용을 다운로드 하면 사용..

C# 2024.05.13

.NET Framework 삭제 방법

현재 내 Framework 버전 확인하는 명령어 (CMD)wmic product get description, version | findstr /C:".NET Framework"   다음 명령을 사용하여 .NET Framework 4.7.2를 제거합니다. 관리자 권한으로 실행한 명령 프롬프트(CMD) 에서 다음을 실행합니다.wmic product where "name like 'Microsoft .NET Framework 4.7.2%'" call uninstall /nointeractive   위와 같이 나오면 제대로 삭제가 됐음을 의미합니다. .NET Framework를 제거한 후 시스템을 재부팅합니다. 이렇게 하면 시스템이 정상적으로 재시작되고 변경 사항이 적용됩니다.

C# 2024.05.13

SQL DB에 대량 데이터 삽입하는 방법

1. 랜덤 데이터 생성 및 CSV 파일 작성먼저 C# 코드를 사용하여 랜덤 데이터를 생성하고 CSV 파일로 저장하는 방법을 알아봅니다.- 테이블에는 간단하게 age, name, id 만 포함 using System;using System.Collections.Generic;using System.IO;class Program{ static void Main() { Random random = new Random(); List dataRows = new List(); dataRows.Add(new string[] { "age", "name", "id" }); // CSV 헤더 for (int i = 0; i  2. CSV 파일을 SQL Serve..

C# 2024.05.13
반응형