2008-09-09 3 views
6

프로덕션 환경에서 잠시 동안 Windows 응용 프로그램을 사용하고 예외를 throw 할 때 오류 보고서를 보내도록 설정했습니다. 이들 대부분은 상당히 설명적이고 (MS Application Exception Block을 사용하여) 문제를 매우 빨리 찾을 수 있도록 도와줍니다..NET 프로덕션 디버깅

몇 가지 경우에 재현 할 수없는 문제가 있으며 일부 클라이언트 컴퓨터에서만 발생하는 것으로 보입니다.

이러한 클라이언트 컴퓨터에 물리적으로 액세스 할 수 없지만 디버깅에 사용할 수있는 전략은 무엇입니까? 코드를 추적하는 것이 더 낫지 않습니까? 아니면 다른 대안이 있습니까?

감사합니다.

편집 : 나는 분명히해야한다. 내가 얻은 오류 보고서에는 스택 추적이 있지만 프로덕션 코드이므로 예외를 초래 한 정확한 줄을 나타내지는 않는다. 던졌습니다.

답변

2

하나의 옵션은 가능한 한 예외가 발생하는 지점 가까이에 (mini-) 덤프 파일을 생성하는 것입니다. 이 article은 관리 코드에서이 작업을 수행하는 방법에 대해 설명합니다.

당신은 다음 Visual Studio 또는 WinDbg를에 덤프 파일을로드하고 스마트 Gurock Software에서 검사 SOS

1

나는 항상 내가 이벤트 로그를 사용합니다 것

2

합니다. 작업/예외를 로컬에 기록하는 추적 모듈을 만들어야합니다.

사용자는 문제가 발생한 순간 사용자가이 정보를 자동으로 이메일로 보내기 위해 클릭 할 수있는 옵션이나 메뉴 옵션을 가질 수 있습니다. 또는 파일을 전송할 수 있도록 파일을 보유 할 수있는 옵션을 가질 수 있습니다 다른 방법으로 당신에게.

시스템에서 무결성 검사를 실행하기위한 진단 코드를 빌드하고 보고서를 보냅니다 (모든 단위 테스트를 실행하여 해당 시스템에서 작동하는지 여부를 알 수 있음).

1

의 도움을 검토 할 수는 나를 위해 편리한 여러 번에왔다. .NET 응용 프로그램에 넣기가 매우 쉽고 로그 파일을 분석 할 때 매우 강력한 제어 기능을 제공합니다. 로그 수준을 통해 특정 경우를 제외하고 특정 기능을 해제 할 수 있으므로 성능이 저하되지 않습니다.

기계에 대한 완전한 액세스 권한이 없을 때 소프트웨어에서 로그를 저장하기 위해 연결할 수있는 서버 소프트웨어가 있습니다. 예를 들어 www.yourdomain.com에서 서버를 운영 할 수 있습니다. 소프트웨어에는 디버깅을 활성화하는 구성 옵션이 있습니다. Smart Inspect는 서버에 로그 데이터를 보내도록 구성되며 (옵션으로 로컬 파일에 선택적으로) 소프트웨어가 실행되는 위치에 상관없이 실시간 로깅을 얻을 수 있습니다.

Smart Inspect는 구성이 매우 쉽고 도움을 줄 수있는 많은 기능을 가지고 있습니다. 필자는 컴퓨터를 다운시키지 않고 즉시 영향력이 큰 멀티 스레드 서버 애플리케이션을 디버깅하는 데 사용했습니다. 다른 프로세스, 스레드 및 기계를 추적하기위한 모든 후크가 있습니다.

관련 문제