Global.asax를 디버깅할 수 있습니까?
global.asax 파일을 디버그할 수 없습니다!
는 몇개있다니습드코가에 몇 .Application_Start()
메서드에서 중단점을 설정하면 무시됩니다!
이게 정상이야?
는 방법한단간에 들어가는 간단한 Application_Start()
사용하는 것입니다.System.Diagnostics.Debugger
래스를 시킬 수 . 를 삽입하여 응용프로그램을 강제로 중단할 수 있습니다.System.Diagnostics.Debugger.Break()
디버거를 해제할 수 있습니다.
void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Break();
// ...
}
- IIS 프로세스에 디버거를 연결합니다.
- global.asax 파일을 열고 중단점을 넣습니다.
- web.config 파일에 공백을 추가하고 파일을 저장합니다(이로 인해 현재 웹 응용 프로그램이 재설정됨).
- 사이트의 웹 페이지를 새로 고치거나 이동합니다.
- 디버거가 중단점에서 멈출 때 깜짝 놀라며 지켜봅니다.:)
Application_Start()
AppDomain당 한 번씩 호출됩니다.중단점에 도달하지 않은 경우 AppDomain이 이미 생성되었음을 의미하므로 다음을 수행하십시오.
- 빠른 실행 표시줄에는 VS 웹 서버의 아이콘("로컬 호스트 일부 포트"라고 표시됨)이 있습니다.마우스 오른쪽 단추를 누른 후 "중지" 또는 "닫기"를 선택합니다.이렇게 하면 AppDomain이 중지됩니다.
- IIS를 사용하는 경우 사이트를 수동으로 다시 시작해야 합니다.
- 또는 웹 구성 또는 Global.asax 파일을 수정하면 일반적으로 AppDomain을 다시 시작하기에 충분합니다.
- 디버깅을 다시 시작하십시오. 지금 중단점을 찾아야 합니다.
프로그램이 합니다.<compilation debug="true">
web.config) 파일입니다.
VS에서 시작한 개발자의 IIS를 사용하는 경우에는 이를 다시 시작하거나 응용 프로그램을 다시 빌드하면 됩니다.
일반 IIS에 있는 경우 두 가지 옵션이 있습니다.
- 웹 사이트가 개발 폴더(VS 웹 프로젝트가 배포된 위치)와 함께 작동하도록 구성된 경우, 첫 번째 요청이 서버에 도달하기 전에 해당 웹 사이트에 대해 설정된 애플리케이션 풀을 다시 시작하고 디버깅을 시작하면 됩니다(디버깅 중에는 항상 앱 풀을 다시 시작할 수 있음).
- 다른 폴더 또는 원격 서버에서 작동하는 웹 사이트의 경우 프로세스에 연결해야 합니다.원격 웹 서버 다름)가 하며 를 사용합니다.
Debug - Attach to process
메뉴에서 컴퓨터 이름을 입력한 다음 디버깅할 프로세스를 선택합니다.일반적으로 관리 모드 유형에서 작동하는 w3wp.exe입니다.
시도해 보는 게 좋을 것 같아요.
- 작업 표시줄에서 개발 서버 중지
- 릴리스에서 디버그로 구성 전환
네, 정상입니다.
Application_Start()
IIS에 의해 처리됩니다.
하지만 다른 모든 방법들, 예를 들어.Session_Start
그리고 다른 모든 것들, 제외.Application_Start()
정상적으로 디버깅할 수 있습니다.
수용된 것에 대한 또 다른 대안System.Diagnostics.Debugger.Break();
되지요
void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Launch();
//...
}
이는 코드를 깨서는 안 되며 서비스가 다른 권한으로 시작된 경우에도 디버거를 시작해야 합니다.
삭제global.asax
새 파일을 추가합니다.내 해결책에는, 다음과 같은 일이 있었습니다.global.asax
그리고 aglobal.asax.cs
.
모든 메소드(Session_Start
,Application_Start
...)는 봇 파일에 있었지만, 오직 에 있는 것들만global.asax
고려되었습니다.그래서, cs의 중단점과 코드는 아무것도 하지 않습니다.
파일을 재생성한 후에만,global.asax.cs
적절한 방법이 있었고 그들은 도망쳤습니다.
디버거가 연결되었을 때 이미 IIS에서 디버그 중단점이 실행되었습니다.그래서 해결책은 공간이 조금 있는 global.asax를 변경하고 파일을 저장하는 것이었습니다.새로 고침 후에 중단점이 표시됩니다.
여기에 있는 솔루션: https://wakeupandcode.com/hitting-breakpoints-in-global-asax/
Application_Start() 함수가 f5를 눌러 즉시 호출될 것으로 예상하지 마십시오.Application_Start()는 애플리케이션에 대한 첫 번째 요청이 발생할 때만 호출됩니다.이상하지만 사실입니다.
모든 답변이 작동하지 않는 경우 다음을 시도합니다.
<compilation debug="true" ... />
에web.config
. ;)
언급URL : https://stackoverflow.com/questions/1960651/is-it-possible-to-debug-global-asax
'source' 카테고리의 다른 글
Mac OS X에서 Android SDK를 설치하는 위치는 무엇입니까? (0) | 2023.08.02 |
---|---|
파이썬에서 스레드 내부에서 호출할 때 sys.exit()이 종료되지 않는 이유는 무엇입니까? (0) | 2023.08.02 |
텍스트 편집 필드가 비어 있는지 확인하려면 어떻게 합니까? (0) | 2023.08.02 |
목표 C(iOS)에서 이미지에 텍스트를 쓰는 방법은 무엇입니까? (0) | 2023.08.02 |
Android Emulator의 스토리지를 늘리는 방법 (INSTALL_FAILED_)_스토리지 부족) (0) | 2023.08.02 |