디버거가 내 ASP의 중단점에서 중지되지 않는 이유는 무엇입니까?NET 어플리케이션?
큰 ASP를 디버깅하려고 합니다.NET 응용 프로그램.
Default.aspx.cs 의 Page_Load에서 첫 줄에 중단점을 설정했습니다.
응용프로그램을 시작하면 중단점이 느낌표가 포함된 빨간색 둥근 윤곽선으로 잠시 바뀌다가 다시 일반 중단점으로 바뀌며 중단점에서 멈추지 않고 응용프로그램이 시작됩니다.
MSDN은 이 기호가 "중단점 위치가 로드되지 않음"을 의미한다고 말합니다.그러면 로드할 중단점 위치를 어떻게 가져올 수 있습니까?몇 주 전에 작동했습니다.어떤 종류의 것들이 중단점을 "로드되지 않음"으로 만들 수 있습니까?
디버거가 중단점에서 다시 중지되도록 하려면 어떻게 해야 합니까?
부록:
F5 키를 눌러도 디버깅이 작동하지 않지만 웹 사이트를 시작한 다음 디버깅/첨부 프로세스를 수행하여 디버깅 모드로 전환할 수 있습니다.만약 누가 이것이 왜 작동하는지 알고 있지만 제가 F5를 눌렀을 때 작동하지 않는다면(디버깅 버튼은 F5에도 표시되지 않음), 어떤 아이디어든 환영할 것입니다.
응용프로그램에서 전체 재구성을 시도합니다."디버그" 구성에 있습니다.
제가 알기로는 (하지만 저는 이런 것들에 전문가가 아닙니다.) 디버그 정보 파일(.PDB)가 실제 컴파일된 것과 동기화되지 않았습니다.
사람들...중단점 중단을 위한 다른 해결책을 찾았습니다.Visual Studio 2010의 프로세스에 연결 창에서 Framework 3.5를 사용하면 기본적으로 디버그할 코드 유형(v2.0, v1.1, v1.0) 및 (v4.0)을 자동으로 결정합니다.
Visual Studio는 혼동되어 2.0 관리 코드를 4.0 관리 코드로 자동 결정합니다.
이 경우 "선택..."을 클릭해야 합니다.연결 위치 필드에서 버튼을 누르고 관리(v2.0, v1.1, v1.0)를 선택합니다.
안부 전해요
IE8의 VS 디버깅 문제
이번이 제가 웹로그에 올린 첫 글이기 때문에 ASP에서 자주 발생하는 문제에 대해 글을 쓰기로 했습니다.VS 디버거인 NET 공식 포럼이 IE8과 충돌합니다.
저는 같은 문제에 4번이나 답을 했으므로, 누군가가 같은 문제에 직면한다면 이 게시물이 큰 도움이 되길 바랍니다.
어떻게 VS 디버거가 IE8과 충돌할 수 있습니까?
IE8 인스턴스를 여러 개 열었을 때 프로젝트를 디버그하려고 하면 VS 디버거가 중지되고 중단점이 무시되는 문제가 대부분 발생합니다.
왜 그랬을까요?
IE 8에는 IE가 여러 프로세스에서 실행되는 LCIE(Loose-Coupled Internet Explorer)라는 기능이 있습니다.http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie
이전 버전의 Visual Studio Debugger는 이 문제로 인해 혼동되어 올바른 프로세스에 연결하는 방법을 찾을 수 없습니다.
이 문제를 해결하려면 아래 단계를 수행하여 LCIE의 공정 증가 기능을 비활성화해야 합니다.
RegEdit 열기 2) HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main 3) TabProcGrowth라는 키 아래에 단어 추가 4) TabProcGrowth를 0으로 설정합니다.
Vista 이상 버전에서 동일한 문제가 발생하는 경우 보호 모드도 해제해야 합니다.
그런 다음 코드 디버깅을 시작합니다 :)
다음을 시도할 수도 있습니다.
- 솔루션 및 비주얼 스튜디오를 닫습니다.
- iisreset/stop 실행
- C:\windows\microsoft.net \framework\v2.0.50727\에서 모든 항목을 삭제합니다.임시 ASP.NET 파일.이러한 파일 중 일부를 삭제하는 데 문제가 있는 경우 비주얼 스튜디오 버전이 있거나 디버거가 계속 실행 중일 수 있습니다.
- iisreset/시작 실행
- VS에서 솔루션 열기
- 디버그로 빌드 설정
- 솔루션 수준에서 모두 재구성 실행
- 히트 F5
Visual Studio 2005 및 IE8을 사용하는 경우 다음과 같은 설명이 있을 수 있습니다.IE8은 VS2005 ASP를 디버깅할 때 알려진 문제를 일으키는 LCIE(Loose-Coupled IE)라는 새로운 기능을 도입했습니다.NET 응용 프로그램.자세한 내용과 몇 가지 솔루션은 SO의 이 스레드를 참조하십시오.
ASP에서 디버깅 실행을 시작하기 전에 IE8의 실행 중인 인스턴스를 모두 종료했을 때 디버깅 문제가 모두 사라졌습니다.NET 프로젝트.
제가 여기에 글을 올리는 또 다른 이유는 '중단점이 작동하지 않음' 문제에 대한 많은 잠재적인 해결책을 나열한 블로그를 공유하기 위해서입니다.블로그에는 인터넷에 흩어져 있는 대부분의 솔루션이 한 곳에 나열되어 있어서 좋습니다.어쨌든 그 블로그의 저자는 조지 P입니다.Alexander; 기사에 무슨 일이 생길 경우를 대비하여 여기에 육즙이 풍부한 부분을 복사하여 붙여 넣겠습니다.
정밀 유도 미사일 사용:obj 및 bin 폴더에서 .pdb 파일을 삭제합니다.다시 컴파일합니다.달려.
카펫 폭탄 all .dlls: 참조된 모든 .dll을 삭제하고 다시 로드합니다(클래스 프로젝트처럼).)
WMD 릴리스: #1과 #2가 작동하지 않았다면 바로 obj와 bin 폴더 자체의 내용을 삭제하여 모든 .pdbs와 .dll이 소멸되도록 합니다.필요한 .dll을 다시 로드하고 시도합니다.
VS.Net 마법:VS를 닫습니다.네트를 치고 다시 시작합니다.다시 작성합니다.네, 가끔은 효과가 있어요
Windows 마법:컴퓨터를 종료하고 다시 시작합니다.다시 작성합니다.달려.
실행 모드: VS를 확인합니다.Net 실행 모드가 "Release"가 아닌 "Debug"로 설정됨
Web.config 설정:web.config 파일의 XML Element "compilation" 태그에 debug = "true" 속성이 있는지 확인합니다.이 옵션이 활성화된 경우에만 웹 앱 및 서비스가 .dlls로 생성된 .pdb 파일을 가집니다.
프로젝트 속성 #1: 프로젝트 속성 --> 디버그 --> "ASP"를 활성화합니다.Net Debugging true" 또는 "Visual Studio 호스팅 프로세스 사용"(VS 버전에 따라 다름).사용 중인 네트).
프로젝트 속성 #2: 프로젝트 속성 --> 구성 속성 --> 빌드 --> "디버깅 정보 생성"이 "참"으로 설정되어 있는지 확인합니다.
잘못된 프로세스가 첨부되었습니다.디버깅 세션이 올바른 프로세스에 연결되지 않았을 수 있습니다.프로세스를 수동으로 연결하려면 단계적으로 개입해야 할 수 있습니다.이는 웹 서비스에서 가능합니다.프로세스를 연결하는 옵션은 디버그 메뉴 내에 있습니다.
스크립트 및 관리되지 않는 코드 디버깅:스크립트 또는 관리되지 않는 코드를 디버그할 수 없습니까?프로젝트 속성 --> 디버그 --> "ASP 디버깅 사용" 또는 "관리되지 않는 디버깅 사용"(VS 버전에 따라 다름)을 확인합니다.Net)이 true로 설정되어 있습니다.
@Pagedirection #1: .aspx 문서의 @Pagedirection에 있는 AutoEventWireup 특성이 "true"로 설정되어 있는지 확인합니다.
@Pagedirection #2: .aspx 문서의 @Pagedirection에 있는 Debug 속성이 "true"로 설정되어 있는지 확인합니다.속성을 찾을 수 없는 경우에도 괜찮습니다.기본적으로 true입니다.
Rogue .DLLs: 의도한 프로젝트 경로의 다른 위치에 있는 다른 .dll 인스턴스가 실행되고 있지 않은지 확인합니다.
14.1 Rogue.dlls 침목 셀 #1: 프로젝트 .dll을 GAC 폴더에 설치했습니까?bin 폴더 대신 GAC 폴더에서 호스트되는 .dll을 실행할 수 있습니다.GAC에서 .dll을 제거/제거한 후 다시 시도합니다.
14.2 로그.DLL 침목 셀 #2:
C:\Documents and Settings[UserName]\VSWeb Cache[시스템 이름]:
프로젝트와 관련된 폴더에서 WMD(#3)를 릴리스합니다.
14.3 프로젝트의 다른 위치에 있지만 대신 프로젝트에서 참조되는 로그 DLL sleeper cell #3: .dll.프로젝트 속성을 검사하여 이러한 정보를 확인할 수 있습니다.한마디로 VS.Net에서 개발 환경에 로드된 .dll이 아닌 다른 .dll을 참조하고 있습니다.
14.4 로그.DLLs sleeper cell #4: 위의 포인트를 끝낼 때까지 이 폴더를 가지고 놀 필요가 없기를 바랍니다...
C:\ 소개WINDOWS\Microsoft.NET\Framework[.넷 버전]\임시 ASP.NET 파일\
이 폴더에는 VS에서 실행하는 동안 참조될 수 있는 윈도우즈 폴더에 저장된 이전 버전의 .dll이 포함될 수 있습니다.그물. 이런 일이 일어나면, 형편없어요.프로젝트와 관련된 폴더 및 내용을 최대한 삭제할 수 있습니다.프로세스를 닫아 비활성화해야 하는 읽기 전용 잠금이 있을 수 있습니다.이것은 최후의 노력에 가깝습니다.Windows(윈도우) 폴더를 가지고 놀아본 적이 없는 경우에는 이 작업을 수행하지 마십시오.대부분의 경우 이 점이 해결되기 전에 위에서 수행한 작업이 해결됩니다.따라서 이상적으로 위의 포인터를 완료할 때까지 이 점을 읽을 필요가 없습니다.그리고 참고로 물리학, 수학, Windows 및 에서 박사 학위가 없는 경우에는 이 옵션을 탐색하거나 Windows 폴더를 가지고 노는 것을 권장하지 않습니다.그물.
기타 팁:
- 모듈 창:VS에서 응용 프로그램을 실행하는 동안 모듈 창을 볼 수 있습니다.Net(디버깅 --> Windows --> 모듈).프로젝트의 모든 모듈이 여기에 나열되어야 합니다.프로젝트의 .dll이 나열되고 기호 상태가 "Symbols Loaded"이면 문제가 없습니다.
파일과 "Symbolics심볼 선택)로파일로 합니다.pdb 파일과 관련된 메시지인 경우 "Select Symbolics"(심볼 선택) 및 해당 .pdb 파일로 이동합니다.디버깅을 다시 시작하거나 VS를 로드해야 할 수 있습니다.가 " Loaded됩니다.이제 상태가 "Symbols Loaded"(기호 로드됨)로 변경됩니다.
VS.Net 파일:> > VS. --> Debugging In VS.이후에는 2005 " 더 . 여기서 VS.2005 "Symbols"와 "Symbols"를 수 .기호를 찾기 위한 그물입니다.디버깅할 때도 모듈 창을 통해 액세스할 수 있습니다.
설정하셨습니까?<compilation debug="true">
sys.config에서?
중단점이 작동하지 않는 것과 유사한 문제가 있었고 동시에 IIS 콘솔에서 프로젝트의 구성을 편집할 수 없었습니다. 즉, 구성 편집 버튼이 회색으로 표시되었습니다.
[구성 편집 버튼을 찾으려면:시작 | 모든 프로그램 | 관리 도구 | 인터넷 정보 서비스를 선택한 다음 필요한 컴퓨터, 웹 사이트, 기본 웹 사이트를 차례로 확장하고 필요한 프로젝트를 찾아 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 ASP를 선택합니다.넷 탭]
저는 IIS에서 ASP를 발견했습니다.제 프로젝트의 넷 버전은 4.0.30319로 설정되었습니다.2.0.50727로 설정하면 구성 편집 버튼을 사용할 수 있게 되고(클릭 가능) 중단점이 다시 작동합니다.
또한 ASP를 확인할 가치가 있다는 것을 깨달았습니다.IIS에서 "기본 웹 사이트"에 대해 설정된 순 버전 [IIS 콘솔에서 웹 사이트를 확장하고 기본 웹 사이트를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택하고 ASP를 선택합니다.Net 탭]을 클릭하면 Visual Studio에서 생성된 새 프로젝트가 기본 웹 사이트 설정을 얻을 수 있습니다.
항상 디버깅을 위해 솔루션 구성을 "디버그"로 설정합니다.게시 후 릴리스 구성으로 변경될 수 있습니다.
최근에 이 문제(WinXP, VS2003)가 발생하여 위의 많은 솔루션을 시도했지만 성공하지 못했습니다.그리고 여러 버전의 의 버전이 있다는 것을 깨달았습니다.Net 런타임이 설치되었습니다.그래서 저는 IIS 5.1을 시작했고, 적절한 가상 폴더를 찾아 속성으로 이동한 다음 ASP로 이동했습니다.NET 탭에서 ASP를 변경했습니다.4.의 NET 버전?1.1에 도달했고, 이것이 문제를 해결한 것처럼 보였습니다.해결책은 이것일 수도 있고 위에 있는 것들 중 하나 이상일 수도 있습니다.
또한, 위의 모든 것들은 시도할 다른 것들로 "주방 싱크대"를 구성합니다.이것은 스파게티 면 뭉치를 벽에 던지는 것과 같습니다. 그 중 일부가 붙기를 바라면서 말이죠.또한 이러한 "솔루션" 중 일부는 프로그램에서 다른 문제를 일으킬 수 있습니다.예를 들어 AutoEventWireup="true"를 설정하는 제안으로 일부 이벤트가 두 번 실행될 수 있습니다!!!(http://support.microsoft.com/kb/814745) 참조).
제 IIS(Express가 것 입니다. 인 나의경우익를이완아전문한님는제는 IIS사용것하과완가 IIS있관니다전디한프속 IIS습빌버트젝로포디련와이드그버는하함도성만지포하기함그스를레호프스▁proper▁in(▁had▁ending▁project▁issue▁theties있▁case관,,니▁my빌다습련이▁but▁where)▁it▁full▁express와드▁iis▁build디그버▁up▁aBuild
,Optimize code
확인했다.
Express에서는 정상적으로 작동하지만 전체 IIS에서는 작동하지 않습니다.Visual Studio는 w3wp 프로세스에 올바르게 연결되지만 최적화된 dll에 대한 기호를 로드하지 않습니다.에서 Visual Studio로 할 수 .Debug
,Windows
,Modules
"dll 파일" 합니다.Symbol Status
에는 그이보는열주여가 됩니다.Skipped Loading Symbols.
마우스 오른쪽 단추를 클릭하고 선택합니다.Load Symbols
효과가 있을 거예요
을 줄 수 한 가지 가 Visual Studio에서 사용자 입니다.Debug
,Options and Settings
,Debugging
,General
,Enable Just My Code
최적화된 경우 전체 IIS에서 실행될 때 dll은 사용자 코드가 아님으로 표시되므로 내 코드 사용이 활성화되면 중단점을 건너뜁니다.VS가 비사용자 코드를 디버깅하도록 설정하거나 중단점이 발생하도록 빌드를 최적화하지 않도록 설정할 수 있습니다.
다른 개발자가 프로젝트 속성을 재설정하여 로컬 IIS가 아닌 IIS Express를 사용하도록 했습니다.그래서 프로젝트는 정상적으로 진행되었지만 아무것도 진행되지 않았습니다.
Project > Properties > Web > Servers - Change to Local IIS를 마우스 오른쪽 버튼으로 클릭합니다.이것이 모두에게 효과가 없을 것이라는 것을 알지만 이것이 누군가에게 도움이 되기를 바랍니다.
- 솔루션 속성으로 이동합니다.
- 구성 속성에서 솔루션의 모든 프로젝트에 대해 빌드 구성 집합을 'release'가 아닌 'Debug'로 설정합니다.
- Apply(적용)를 클릭한 다음 OK(확인) 버튼을 클릭합니다.
이것은 제가 누락된 설정을 마침내 알아차릴 때까지 일주일 동안 저를 미치게 했습니다.이것은 Jay Riggs의 답변을 기반으로 하지만 2005년 대신 Visual Studios 2010을 위한 것입니다.프로젝트 속성 -> 웹 -> 디버거에서 ASP를 확인합니다.NET 디버거가 선택되어 있습니다.
Debug=>Options=>General=>Enable Just My Code(내 코드만 활성화) 체크 표시 제거
이것은 나에게 효과가 있었습니다.
어리석게 들리지만 프로세스 초기에 중단점을 지정합니다. 프로세스가 중단점에 도달하지 않을 수도 있습니다.
C# WPF에서 저에게 일어난 일에 대해 조금만 덧붙이자면 여기에도 적용된다고 생각합니다.위의 답변을 시도해 보았지만 효과가 없었습니다.
코드 ---> 스레드 ---> 함수 START - 중단점 - END
그건 당신의 경우가 아닐 수도 있지만 누군가에게 도움이 되기를 바랍니다.내 코드에서 나는 외부 함수를 실행하는 스레드를 실행하고 있었습니다.그래서 외부 기능에서 작동하는 중단점을 얻을 수 없었습니다.그리고 (나의 재구축 또는 옵션 변경에도 불구하고) 그 행동은 질문에서 설명한 그대로였습니다.
그래서 저는 브레이크포인트를 외부 기능에서 스레드로 이동시켜야 했고 그것이 작동했습니다.중지되었을 때 저는 F10-F11을 진행했습니다.
코드 ---> 스레드 중단점 ---> 함수 START - END
Visual Studio 2022에서 상단의 '프로젝트' 탭으로 이동합니다.그런 다음 '스타트업 프로젝트 구성'을 클릭합니다.'구성 속성'을 선택합니다.릴리스 또는 기타에서 구성을 '디버깅'으로 설정합니다.중단점 작업이 다시 수행되고 변수 값을 완전히 보여주는 창이 나타납니다.
언급URL : https://stackoverflow.com/questions/856643/why-would-the-debugger-not-be-stopping-at-a-breakpoint-in-my-asp-net-application
'bestsource' 카테고리의 다른 글
PowerShell 함수에서 하나의 값만 반환하는 방법은 무엇입니까? (0) | 2023.08.02 |
---|---|
Ruby on Rails와 함께 "MySQL 서버가 사라졌습니다" (0) | 2023.08.02 |
Retrofit 요청 본문에 생 JSON을 게시하는 방법은 무엇입니까? (0) | 2023.08.02 |
base 64 각도의 문자열 인코딩 및 디코딩(2+) (0) | 2023.07.28 |
Oracle에 대한 EF 쿼리가 "ORA-12704: 문자 집합 불일치"를 발생시킵니다. (0) | 2023.07.28 |