2012-10-06 4 views
3

"System.NullReferenceException : 개체 참조가 개체 인스턴스로 설정되지 않았습니다."가 표시됩니다. 웹 응용 프로그램의 릴리스 빌드를 시작하면 오류가 발생합니다. 자세한 정보를 얻으려면 디버그 빌드를 수행해야하지만 디버그 빌드를 시작하면 오류가 더 이상 발생하지 않습니다. 디버그 빌드에서 대부분의 오류와 함께 제공되는 줄 번호의 도움이 없으면이 모호한 오류의 원인을 정확히 알아 내기가 매우 어렵습니다.릴리스 빌드에서만 System.NullReferenceException

누구든지이 예외의 원인을 좁히기 위해 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다.

+1

WinDbg + SOS, http://blogs.msdn.com/b/tess/archive/2009/04/16/net-exceptions-quick-windbg-sos-tip-on-how-to-dump-all -the-net-exceptions-on-the-heap.aspx –

+0

구성 파일을 확인하십시오. 릴리스 파일의 연결 문자열이 잘못되었거나 비어있을 수 있음 =) – xtmq

+0

문제를 찾았습니까? –

답변

2

문제를 빠르게 해결할 수있는 경우 (코드를 다시 작성할 시간이없는 경우) 응용 프로그램을 릴리스 한 시스템의 이벤트 로그를 참조하십시오. DLL을 놓치고있는 큰 기회가 있습니다.

장기적인 해결책으로, 응용 프로그램 (Enterprise Library, log4net 등 또는 사용자 자신의 로거)에 로깅 기능을 추가하는 것으로 시작할 수 있다고 생각합니다. 전체 스택 추적을 인쇄하면 특히 릴리스 버전에 .pdb 파일을 포함 할 때 도움이됩니다. 이것은 실행 된 코드가 예외를 던진 행을 정확히 알려줍니다. 이 도움이

희망, 표트르

2

그것은 은 스택이 릴리스 모드로 구축 할 경우에도 추적에 파일 이름과 줄 번호를 얻을 수 수 있습니다. 예를 들어 Display lines number in Stack Trace for .NET assembly in Release modeIs stacktrace information available in .NET release mode build?을 참조하십시오.

일반적으로 디버그 대 릴리스 모드에서 다른 프로그램 동작을 도입하지 말아야한다고 생각합니다.하지만 의도적으로 도입하지 않았을 수 있습니다.

관련 문제