Microsoft MVP성태의 닷넷 이야기
닷넷 에러시 조치사항관련... [링크 복사], [링크+제목 복사],
조회: 17240
글쓴 사람
김기룡
홈페이지
첨부 파일
 

안녕하세요.
질문을 계속 드리네요^^

VS 2008에서 C#으로 프로그램을 작성 했으며, 빌드시 하위 호환성은 .NET 2.0으로 되어있습니다.
배포는 VS자체 기능이 아닌 InstallShield로 배포파일을 만들었는데,
개발한 프로그램이 정상 적으로 동작하는 사용자가 있는 반면
가끔 정상적으로 실행되지 않는 사용자의 경우 다양한 오류 현상들이 접수되고 있습니다.

C#으로 개발된 어플은 .Net Framework 위에서 동작하는데
.Net Framework은 OS와도 밀접한 관계가있어서 단순히 개발된 프로그램의 문제라고 보기에도 어렵고
사용자들의 이상 현상을 어떤 식으로 접근해야 할지도 막막합니다.

예를들어,
어떤 사용자는 제가 개발한 프로그램을 설치한 시점에서는 정상적으로 사용되는데
리부팅을 하면 부팅시에 항상 에러 코드번호 없이 .NET 오류 메시지가 발생하는 사용자가 있으며,

어떤 사용자는 H/W 성능이 좋음에도 제가 개발한 프로그램을 사용하면
컴퓨터가 Hang이 걸릴 정도로 느리다는 사용자도 있습니다.

원격으로 사용자의 환경을 살펴서 원인을 파악하라고 하는데
어떤 정보들을 수집해서 살펴봐야 할지도 막막하더군요.


어떤 사용자는 시스템이 크레쉬 되었다면서 단순히 아래와 같은 텍스트 내용을 보내줬습니다.
파일 경로명에 "WER"이 보여서 인터넷을 찾아보니 윈도우즈 에러 레포팅 기능 같은데
이와 관련된 한글 자료를 찾기 어렵고 해당 정보를 어떤식으로 이용할 지도 애매하군요.

1601212626
   5
   CLR20r3
   Not available
   0
   test.exe
   1.0.1.75
   4d196e89
   System
   2.0.0.0
   4a275e12
   3a97
   394
   System.ComponentModel.Win32
    
   C:\Users\Tester\AppData\Local\Temp\WER2977.tmp.WERInternalMetadata.xml
   C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_test.exe_7648e28e3b956cff242acbe66e450155946e8cc_19455576
    
   0
   73c3a3fd-1510-11e0-aca8-c80aa9fc763b
   0"


위 에러와 관련하여 도움을 부탁드리며 혹시 닷넷과 관련된
응용 프로그램들의 에러들은 어떤 식으로 접근해야 하는지 조언을 구합니다.

또한, C#으로 개발된 윈폼 프로그램의 다양한 환경을 분석하기위한
툴들로는 어떤게 있는지 조언 부탁드려봅니다.








[최초 등록일: ]
[최종 수정일: 1/3/2011]


비밀번호

댓글 작성자
 



2011-01-04 12시05분
제 경우에는 딱히 다양한 환경 분석을 위한 툴을 사용하는 것은 없습니다. 단지 소스 서버와 심볼 서버 구성 및 예외 발생시 스택 오류 로그 기록, 내부적으로 진단용으로 설정할 수 있는 사용자 정의 변수값들을 마련한 정도입니다. 그 이외의 crash 같은 것들은 덤프가 가장 확실한 해결책이겠지요. 덤프는 뜨게 되면 Microsoft 측에도 기술지원을 받을 때 유용하게 사용할 수 있습니다. 때로는, 사용자로부터 대강의 시스템 설정을 받아서 직접 가상 PC를 구현하여 문제 재현을 하기도 합니다.

말씀하신 것처럼, 원격으로 연결할 수 있는 상황이라면 사용자의 양해를 구해서 Debugger for Windows 도구를 설치해서 덤프를 뜨는 것도 고려할 수 있을 것입니다. hang 이 걸리는 경우 덤프를 뜨면 대강의 위치를 파악할 수 있고, 그 코드만 집어낼 수 있다면 문제 해결을 위한 정보는 거의 수집된 것이나 다름없을테니까요.

경험으로 볼 때, CLR20r3 와 관련된 예외의 경우에는 일정 수준 이하의 서비스 팩이 설치된 경우에 최신 버전에서는 지원되는 메서드가 누락된 상황이 대부분이었습니다. (즉, 클라이언트 환경의 닷넷 세부 버전도 알아두는 것이 좋겠군요.)

WER은 저도 현재의 제니퍼 APM 도구에 적용해 보고 싶었는데, 아쉽게도 해당 웹 응용 프로그램의 문제까지도 전부 보고되는 부작용이 있어서 포기했었습니다. 하지만, 김기룡님의 경우에는 유용하게 쓸 수있는 팁이 아닐까 싶은데요. 현재 WER 관련해서 체계가 변한 걸로 알고 있습니다. 대개의 디버깅 서적에서 설명하고 있는 것들이 예전 기준으로 되어 있어서 아마 현재는 마이크로소프트 사이트에서 직접 정보를 얻어야 할 것입니다.

개인적으로도, 다양한 PC에서 설치되는 클라이언트 프로그램에 대한 문제 진단은 쉽지 않습니다. 배포하는 응용 프로그램이나 회사에서 개발되는 프로그램의 문제 진단을 가장 잘 할 수 있는 범위를 정하고 그에 맞게 적절하게 맞춰가는 것이 중요하겠군요.

정성태
2011-01-04 02시51분
[김기룡] 항상 친절하고 빠른 답변 감사드립니다.
향후를 위해 로그파일에 스택 오류도 함께 기록해 봐야겠습니다.*^^*

프로그램이 XP사용자를 타겟으로 만들어져서 .Net 2.0 SP2이상이면
문제가 없을 텐데 CLR20r3 오류가 발생한 사용자가 슬프게도
XP 사용자가 아닌 Win7 64Bit Home버전을 막 설치한 사용자인것 같더군요.

사용자가 구 버전의 .NET을 사용해서 발생하는 문제라면
Win 7이면 OS 자체에서 상위 버전의 .NET이 기본적으로 설치되어 있는데다
기본으로 설치된 버전의 .NET 제거도 안되기 때문에
Win7이나 Vista이상의 OS에서는 문제가 없을거라 생각했었는데 고민이군요.
혹시나 해서 Win7 32/64Bit에서도 여러번 테스트했지만 문제가 있거나 설치가 안된 경우는 처음이거든요.^^

외국에 계시는 분이라 아직은 원격 정보나 세부적인 자료를 수집하지는 못 했습니다.
조언대로 닷넷 세부 버전 부터 덤프 파일등을 수집해야 할 것 같은데
Debugger for Windows와 WER을 사용해 본 적이 없어서 검색 사이트에서 대충 해당 단어들로 검색하고 있습니다.^^;;

영문이어도 상관 없는데 혹시 추천할 만한 Link 자료를 구할 수 있을까요?
감사합니다.
[guest]

1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5781List맨1/5/20233872List.Add("newobj") 속도는 빠른 편인지요? [11]
5780임세1/3/20234437C# 프로그래밍 10 책 구매한 사람입니다. 3부 자료는 어디서 다운 받을 수 있나요? [4]
5779이건우1/2/20233326안녕하십니까 루프안에서 메세지처리에 관하여 질문드립니다! [2]
5778이건우12/30/20224633안녕하세요 c#에서 dll참조 관련 질문드립니다. [4]
5777감사합니...12/29/20223600UI Thread에 Invoke 처리관련 궁금합니다. [3]
5776pdf맨12/28/20223389C# MouseUp Event + pdf [10]
5775민성12/28/20223164안녕하세요 Class 관련해서 예외처리를 하나로 받아낼수 있는 방법 [1]
5774중급12/27/20223970중급개발자란 어느 수준인지요? [4]
5773김영식12/26/20223551c# 압축파일 읽어 올 때 BinaryRead 한글 처리 문제 [1]
5772눈송이12/26/20223643Excel VSTO 는 왜 Net Core, Net 5, 6 버전을 사용하지 않나요? [2]
5771김훈12/26/20223734c# .net client application 망분리(내부망,외부망) 환경에서 의문의 외부사이트 호출 대기 [2]
5770lsh12/26/20223357클라우디움안에 있는 파일을 File.Copy 하고싶은데 코드로는 접근을 못하나요? [1]
5769울타리12/20/20223376Active Directory 2012R2 2016 또는 2019 마이그렝션 문의 드립니다. [1]
5768c++12/14/20224146Thread를 사용한 C++ DLL에 관련된 질문입니다. [6]파일 다운로드2
5767민성12/9/20223496안녕하세요 ashx로 화일을 저장하고 화일명을 리턴하는데요 [1]
5766김명훈12/9/20223639웹브라우저에서 묻지 않고 바로 다운로드 [2]
5765hong12/1/20223893Winform(.Net6) 클라이언트에서 SignalR Core 웹서버에 접속시 인증서 문제 [3]파일 다운로드1
5764요한11/30/20224064c++ 동일한 객체인지 비교 방법문의 [2]
5763고필석11/30/20223600시작하자마자 비정상 종료하는 프로세스에 대한 문제 해결 조언 요청 드립니다. [3]
5762흰털너부리11/30/20223573wpf mvvm ui update 로딩중 표시 [1]
5761민성11/29/20223476죄송하지만 한가지만 더 여쭈어 보겠습니다 [1]
5760민성11/29/20223405안녕하세요 [2]
5759문정환11/28/20223741c# socket 통신할때 빅엔디언으로 바꿔줘야 하나요? [1]
5758라떼11/28/20224968Linux 에서 winform UI 어플리케이션 실행하기 [3]
5757흰털너부리11/25/20223894asp.net core EF AddDbContext,AddDbContextFactory 차이점 알려주세요 [1]
5756흰털너부리11/25/20223476asp.net core web api에서 json 특정 property 무시하는 방법 문의 드립니다. System.Text.Json 사용중입니다. [1]
1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...