2012-01-20 2 views
3

웹 사이트 어플리케이션을 디버그하려고 할 때 "현재 브레이크 포인트가 적용되지 않습니다.이 심볼에 대한 심볼이로드되지 않았습니다"라는 메시지가 나타나는 이유를 이해하려고합니다. (참고 : 웹 응용 프로그램이 필요없는 경우)심볼이로드되지 않고 pdb 파일이 누락되었습니다.

지금까지 필자는 pdb (프로젝트 디버그 데이터베이스) 파일이 소스 코드만큼 중요하며 bin 폴더에 나타나야한다는 것을 알았지 만 파일이 누락 된 이유는 일부 dll이 거기에 배치되어 실제로 전체 디렉토리에 pdb 파일이 없기 때문입니다.

첫 번째 질문은 : 개발중인 프로젝트의 종류에 관계없이 pdb 파일이 있어야합니다. 옳은?

두 번째 질문 : 프로젝트를 다시 디버깅하려면 어떻게 파일을 다시 만들거나 어떻게해야합니까?

답변

4
나는이 문제를 해결하는 것이하는 일의

커플 :

  • 지우기 임시 ASP.NET 파일 (C : \ WINDOWS \ 마이크로 소프트 .NET \ 프레임 워크 {버전} \ 임시 ASP.NET 파일을 { site} (Visual Studio 및 개발 사이트를 가리키는 모든 웹 브라우저를 종료해야합니다.)
  • 작업 관리자를 시작하고 W3WP를 마우스 오른쪽 단추로 누릅니다.EXE 프로세스를 선택 SET의 친 화성이 모든 선택을 취소하지만 이렇게하면

보통, 다음 디버그에 W3WP 프로세스에 연결 한 CPU는 중단 점에 채워집니다 그리고 내 코드를 단계별로 실행할 수 있습니다.

+0

안녕하세요, Tim, 명확하게 주셔서 감사하지만 W3WP.EXE 프로세스가 작업 관리자에서 실행되는 것을 볼 수 없습니다. 내 웹 사이트에서 다시 말했듯이, 아직 기호가 아직로드되지 않은 DLL이 있습니다.이 문제를 해결하는 방법에 대한 아이디어가 있습니까? – Somebody

+0

프로세스에 연결하는 대신 VS 디버거를 사용하고 있다고 가정합니다. 임시 ASP.NET 파일 및 디버거를 다시 실행하십시오. – Tim

+0

VS를 닫더라도 임시 asp.net 파일을 삭제할 수 없습니다. 로그 오프 한 다음 다시 로그온해야합니다. 이상하게 들리십니까? – Somebody

6

pdb를 얻으려면 컴파일 가능한 코드가 있어야합니다. 너처럼 들린다.

보통 "디버그"대신 "릴리스"로 빌드를 설정했습니다.

http://msdn.microsoft.com/en-us/library/wx0123s5.aspx

당신이 웹 응용 프로그램을 만드는 경우, 구성 파일은 또한 "소매"설정이있을 수 있습니다. true로 설정하면 빌드 구성에서 달리 지정하더라도 항상 "릴리스"모드입니다.

아드리안 Iftode 말한 것처럼 첫째, 웹 사이트의 경우, 파일 뒤에 코드가 ASP 닷넷에 의해 컴파일, 내 문제에 대한 해결책에 대한 나의 탐구에

http://msdn.microsoft.com/en-us/library/ms228298(v=vs.80).aspx

+0

또 다른 잠재적 인 솔루션을 – Somebody

+0

업데이트 답을 디버깅 설정을 선택 취소. –

+0

릴리스 모드에서 여전히 pdb 파일이 생성됩니다. –

0

나는이 발견 VS가 아니기 때문에 bin 폴더에는 dll과 pdb 파일이 없습니다.

  • 그래서 나는 모든 임시 파일을 삭제합니다 Windows는 Microsoft .NET \ 프레임 워크 \ \ V2.0.50727 임시 ASP.NET 파일 \ 당신이 가진 모든 프로젝트에 대한 폴더를 포함

\.

  • 디렉토리 \ 구성 \ 디버깅 \ 디버깅 플래그 아래 두 옵션을 확인 \ 프로젝트에 대한 IIS 속성에서
  • IEXPLORER에서 모든 임시 파일을 삭제합니다.

위 작업을 모두 수행하면 웹 사이트를 다시 디버깅 할 수있었습니다.

1

방금이 문제가 발생하여 web.config가 debug = false로 설정되었습니다.

컴파일 \ 고급 컴파일 옵션 \ 디버그 정보 생성 :
하는 릴리스의 파일을 .PDB 생성

<compilation defaultLanguage="vb" debug="true" batch="false" targetFramework="4.0"> 
    <assemblies> 
    <!-- add references to gac assemblies here--> 
    </assemblies> 
</compilation> 
+0

예. ASP.NET 보안에 대한 모든 기사가 너무 심각하다는 것은 보안 위험이 큰 것으로 나타났습니다. 스택 추적에 보안 및 회선 번호가 필요하지 않습니까? 터프한 ... –

+0

그것은 찌푸린 환경에서만 적용되며, 그렇습니다. – csauve

+0

코멘트에서이 부분을 논의하기에 다소 어쩌면 약간의 문제가있을 수 있지만 실제 환경에서 처리되지 않은 처리되지 않은 예외에서 줄 번호를 알 수없는 이유는 무엇입니까? –

0

당신의 Web.config에 그 컴파일 디버그 = 사실 확인, 당신은 당신의 프로젝트의 속성을 설정해야합니다 => 'PDB 전용'또는 '전체'

패키지/웹 게시 \ 생성 제외] 디버그 기호는 =>이

관련 문제