2010-11-24 4 views
1

우리는 생산에서 스택 오버플로를 받고 있습니다 ~/하루 2-4 회w3p.exe가 스택 오버플로로 인해 종료되었습니다. 문제를 추적하는 방법은 무엇입니까?

이것은 dev 환경에서 재생할 수 없습니다. 이 문제를 어떻게 추적 할 수 있을지 고민하고 있습니다.

어쨌든 이벤트 뷰어에서 더 많은 정보를 얻으려고합니다. 리스너 도구의 일부 양식을 설치해도 행복합니까? 현재 도움이 될 teh 스레드 ID (예 : 현재 사용자로 설정)를 얻을 수 있더라도 - dll + 클래스/기능 woudl 좋을!

아니면 그냥 파고, 재현 또는 추적을 추가하려고합니까?

+2

위치 추적을 위해 예외 스택 추적이 있습니까? –

+0

로깅하는 방법에있어 무엇이 있습니까? 구성 할 수 있습니까? 11 노브를 돌릴 수 있습니까? –

+0

우리는 전역 예외 처리기를 가지고 있지만 스택 오버플로이므로 표준 asp.net 예외 처리 (application_erro/elmah/etc)를 무시합니다. – steve

답변

1

global.asax 파일에 전역 예외 처리기를 넣을 수 있습니다. 예외 처리기를 넣은 다음 스택 추적을 이벤트 로그에 기록하십시오. This 기사에는 다른 방법도 많이 있지만 확실한 방법에 대한 요약이 있습니다. 오류가 발생한 위치를 알게되면 오류가 발생하는 함수에 몇 가지 추가 로깅을 넣을 수 있으며 특정 문제를 찾을 때까지 범위를 좁힐 수 있습니다.

2

프로덕션 IIS에서 충돌을 분석하기 위해 실행할 수있는 IISDiag 도구가 있습니다. 여기에 일부 정보는 :

http://support.microsoft.com/kb/919790

그냥 누출이 아니다 - 그것은 당신이 나중에 분석 할 수있는 CORE 파일 같은 것을 덤프합니다.

+0

감사합니다. – steve

2

예외 로깅의 경우 Elmah을 두 드리십시오. Elmah를 사용하여 처리되지 않은 예외 로깅을 추가하려면 어셈블리를 응용 프로그램 bin 폴더에 넣고 기본 로깅 시나리오의 경우 웹 구성에 Elmah 섹션을 추가해야합니다.

로그가 오류 소스를 판별하기에 충분하지 않으면 DebugDiag을 사용하여 실패한 응용 프로그램 상태의 메모리 덤프를 생성 할 수 있습니다. 그것을 사용하는 방법에 대한 안내서가 있습니다 here.

관련 문제