Azure Web App 배포 시 Microsoft.Data.SqlClient.SNI.x86 오류 해결기

  • 3 minutes to read

오랜만에 .NET Framework 4.8 기반의 프로젝트를 수정할 일이 생겼다. 간단한 유지보수 작업이었고, 로컬에서는 별다른 문제 없이 잘 돌아갔다. 그러나 Azure Web App의 Staging 슬롯에 게시한 직후, 예상치 못한 런타임 오류를 마주했다.

Could not load file or assembly 'Microsoft.Data.SqlClient.SNI.x86' or one of its dependencies.

문제 상황

  • NuGet 패키지 정리를 하며 Microsoft.Data.SqlClient를 최신 버전(5.x)으로 업그레이드
  • 로컬에서는 정상 동작
  • Azure Web App의 Staging 슬롯에 게시하자마자 위와 같은 오류 발생

처음엔 단순한 DLL 누락이라고 생각하고 의심되는 설정들을 하나씩 점검했지만, 결과는 변하지 않았다.


해결을 위한 시도

Microsoft.Data.SqlClient 버전 다운그레이드

최신 버전의 네이티브 DLL 로딩 문제가 의심되어, 이전 버전으로 되돌렸다.

하지만 결과는 동일했다. 여전히 같은 에러 메시지가 반복됐다.


느낌적인 느낌

로컬에서는 정상인데, Azure Web App에서는 오류가 계속된다는 점이 의아했다. 특히 소스와 패키지는 완전히 동일했음에도 불구하고, Staging 슬롯에서만 문제가 발생했다는 점이 이상했다.

마치 이전 슬롯에 남아 있는 어떤 네이티브 DLL 찌꺼기가 충돌을 일으키는 것처럼 보였다.


최종 해결

Staging 슬롯 대신 새로운 Dev 슬롯을 생성하고 동일한 코드를 게시했다. 그랬더니 거짓말처럼 정상 작동했다. 실행도 빠르고, 에러도 없었다.


원인 추정

Azure Web App의 슬롯 구조상, 종종 기존 배포에서 남은 네이티브 DLL이나 GAC 캐시, 혹은 Kudu 툴로 확인되지 않는 내부 파일이 영향을 줄 수 있다.

이런 경우 기존 슬롯에 아무리 깨끗한 코드를 올려도, 이전 파일이 완전히 정리되지 않아서 문제가 지속될 수 있다.


결론 및 교훈

  1. .NET Framework 기반 프로젝트에서는 Microsoft.Data.SqlClient 최신 버전이 항상 안전한 것은 아니다.
  2. SNI.x86.dll 오류가 Azure에서 발생하면, 패키지 정리만으로는 해결되지 않을 수 있다.
  3. 기존 슬롯에서 문제가 지속된다면, 슬롯을 새로 만들어 배포해보는 것이 빠른 해결책이 될 수 있다.

마무리

이번 경험을 통해 Azure 슬롯의 배포 동작 방식에 대해 다시 한번 배우게 됐다. 특히 .NET Framework 환경과 Microsoft.Data.SqlClient의 조합은 예상외로 민감하다는 점을 잊지 말아야겠다. 같은 코드와 설정인데도, 환경의 "잔여 상태" 하나가 전체 애플리케이션의 실행을 막을 수 있다.

앞으로도 이런 환경 이슈를 겪는 분들이 있다면, "슬롯을 새로 만들어 본다"는 조언이 작지만 확실한 도움이 될 수 있을 것이다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com