2010-04-26 7 views
10

그래서이 흥미로운 문제는 지난 두 시간 동안 나를 괴롭 히고 있습니다. Visual Studio 2010 Ultimate이 더 이상 디버거를 연결하지 않아 코드를 디버깅 할 수 있습니다.Visual Studio 2010에서 코드 디버그를 허용하지 않습니다.

내장 된 개발 서버를 사용하면 모든 것이 정상적으로 작동합니다. 로컬 IIS 웹 서버 사용 (http://localhost/)으로 전환하면 w3wp.exe에 연결되지만 DLL이나 PDB는로드되지 않습니다. Debug> Windows> Modules로 가면이 창에 아무 것도로드되지 않습니다. 반대로 내장 개발 서버를 사용할 때 모듈 창에 모든 DLL이 표시되고 DLL에 대한 심볼이로드 된 것을 보여줍니다. 뭔가 분명히 잘못입니다. VS 설치는 완전히 뼈대입니다.

IIS에서 내 웹 사이트는 ASP.NET 2.0으로 구성됩니다 (드롭 다운에서 선택할 수있는 3.5가 없기 때문에). "홈 디렉터리"탭에서이 리소스 옵션에 대한 읽기/로그 방문/인덱스를 함께 표시합니다.

실패한 아이디어 중 일부 :
1) 웹 사이트가 표시된 iexplore.exe 인스턴스에서 프로세스에 연결하면 Internet Explorer의 DLL이로드되지만 내 것은로드되지 않습니다.
2) 컴퓨터를 여러 번 다시 시작했습니다.
3) devenv.exe/resetuserdata를 한 번 호출했습니다.
4) 모든 프로젝트가 실제로 디버그되지 않고 해제되지 않았 음을 확인했습니다.
5) 모든 \ bin 내용을 삭제하고 솔루션을 다시 빌드하십시오.
6) 전체 솔루션을 삭제하고 소스 제어에서 다시 가져 왔습니다.

누군가이 문제가 무엇인지 나에게 말해 줄 수 있습니까? 나는 이것이 두통에서 동맥 경화를 일으켜서 나를 일으키는 원인이 될 것입니다.

답변

3

OS를 사용중인 IIS 작업자 프로세스에 연결해야합니까? 프로세스에 연결에서 Managed + Native 플래그로 연결해야합니다. Visual Studio에서 웹 응용 프로그램을 실행 (F5)하면 자동으로 디버거가 연결됩니다. 오류가 있습니까?

+0

네가 뭔가있는 것 같아. 나는 사소한 수정을했고 그것은 반영되지 않았다. 디버거가 다음과 같이 w3wp.exe에 연결하려고 시도하고 있습니다. http://img710.imageshack.us/img710/4606/outputwindow.png – Tejs

+0

중단 점을 설정 했습니까? Visual Studio가 연결되어있는 경우 예인 경우 중단 점으로 이동하면 무엇이 표시됩니까? 중단 점에 도달 할 수없는 경우 일반적으로 메시지가 표시됩니다. –

+0

모든 기능이 작동하는지 확인하기 위해 새로운/새로운 (Visual Studio뿐만 아니라) 웹 응용 프로그램으로 시작하는 것이 좋습니다. IIS를 사용하여 작동하는지 (디버깅) 확인한 후에는 다른 가능성을 계속 배제 할 수 있습니다. 프로세스에 올바르게 연결하지 않았을 가능성이 있습니다. 코드가 CLR 4.0에 의해로드되었지만 다른 기대치를 가진 디버거로 끝나는 CLR 2.0 플래그가 첨부 된 경우에 발생합니다. –

0

브라우저 캐시를 삭제 해 보셨습니까? 때때로 브라우저가 현재 빌드와 호환되지 않는 오래된 코드에 매달려 디버깅을 방지합니다.

+0

IE의 캐시와 Chromes를 삭제했습니다. 로컬 IIS 웹 서버를 사용할 때 브라우저가 작동하지 않습니다. 둘 다 내장 서버로 설정하면 작동합니다. – Tejs

0

빌드 구성 화면에서 특정 솔루션 구성에 대한 일부 프로젝트가 실행되지 않아 빌드되지 않아 디버깅 할 수없는 문제가 발생했습니다. 코드 변경이 실제로 구현되고 실행되는지 여부를 확인할 수 있습니까?

또한 어떤 버전의 Windows 및 IIS를 실행하고 있습니까? 프로세스가 AppPool에서 로그인 한 계정과 다른 계정으로 실행 중일 수 있으며 사용 권한 문제 일 수 있습니까? Vista/Win7 인 경우 UAC가 켜져 있고 관리자로 VS를 실행하고 있습니까? 나는 또한 새로운 프로젝트를 시도하고 그것이 무엇을하는지에 대한 제안을 두 번째로 제안 할 것이다. 컴퓨터의 디버거 사용자 로컬 그룹에 있습니까?

+0

모든 프로젝트가 현재 구성 관리자에서 빌드되도록 설정되어 있습니다. 7) 또한 참조를 취소 한 다음 종속성 프로젝트에 대한 참조를 다시 추가했습니다. – Tejs

0

디버거를 연결하지 않고 앱을 실행합니까? 디버거를 잘못된 프로세스에 연결하는 것처럼 냄새가납니다.

+0

앱을 완전히 실행합니다. 나는 그것이 어떤 프로세스에 붙어 있을지 모른다고 생각합니다. 다른 프로세스에 붙어 있다면, 왜 그 프로세스의 DLL도 모듈 창에 보이지 않습니까? – Tejs

1

여기에도 좋은 답변이 많이 있지만, 문제의 근본 원인은 응용 프로그램 풀 인증 구성입니다. 제가 경험 한 시나리오와 그 해결책을 설명하겠습니다. 아마 누군가가 시간과 머리를 절약하는 데 도움이 될 것입니다.

시나리오 :
내가 비주얼 스튜디오 2010에서 ASP.NET 웹 응용 프로그램을 디버깅하고 싶지만 사용할 수 없습니다 내장 비주얼 스튜디오의 웹 서버입니다. 필자가 내장 웹 서버를 사용할 수없는 이유는 내 응용 프로그램이 64 비트 아키텍처 용으로 특별히 제작 된 어셈블리를 참조하고 VS 웹 서버가 이러한 응용 프로그램을 지원하지 않기 때문입니다. 따라서 웹 사이트 속성에서 "사용자 지정 웹 서버 사용"옵션을 사용하여 원격 IIS 웹 서버에있는 내 사이트의 게시 된 인스턴스에서 디버거를 가리켜 야했습니다.

문제 : 심지어 어셈블리 출력에 디버그 기호를 게시 올바르게 설정 Web.config의 디버그 옵션을
(즉, 디버그 = "true"로 컴파일), 디버거가 원격 IIS 과정과 I에 연결하지 않을 모든 중단 점

을 명중하지 않았다

환경 : 비주얼 스튜디오 2010 디버거가 이미 원격 IIS 웹 서버에 설치하고 LocalSystem 계정에서 Windows 서비스로 실행중인
.

솔루션 :
는 IIS 웹 서버에 호스팅 된 웹 사이트에 추가하여 "Windows 인증"을 "익명 인증"을 활성화합니다.

익명 인증을 사용하자마자 올바른 기호가 VS 원격 디버거에 의해로드되어 중단 점에 도달 할 수있었습니다.

희망이 있으면 도움이 될 것입니다.

관련 문제