2003 년 IIS 6을 사용하고 있습니다. IHttpAsyncHandler에서 상속 한 HTTP 처리기 DLL을 만들었습니다. dll은 inetpub \ www8080root \ common \ bin 디렉토리에 빌드됩니다. 모든 요청을 차단하기위한 것입니다.HTTP 처리기 디버그
웹 사이트는 포트 8080을 모니터링하도록 설정되어 있습니다. www8080root 디렉토리에 공용 폴더를 만들고이를 가리 키도록 II6에 가상 디렉터리를 만들었습니다. 내가 HTTP 처리기 내가 이벤트 로그에서 볼 때 핸들러 내에서 오류를 볼 수 W3wp.exe를의 충돌이 발생 http://localhost:8080/common/index.html에 액세스 할 때 나는 일반적인 디렉토리
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" defaultLanguage="c#" />
<httpHandlers>
<add verb="*" path="*"
type="x2Handler.x2Handler, x2Handler" />
</httpHandlers>
</system.web>
</configuration>
에서 web.config 파일을 만든 충돌을 일으켰다. VS 2005 내에서 중단 점을 설정하면 코드가 손상되지 않습니다.
디버깅하려면 IIS에서 실행 중일 때 프로세스에 연결해야하지만 요청을 처리하자마자 충돌이 발생합니다.
IIS에서 HTTP 처리기 DLL을 어떻게 디버깅합니까? C#, Debugging an HTTPHandler
편집 : Debugger.Break를 (추가함으로써 "W3wp.exe를 중단 점을 트리거하고있다"나는 이제 메시지가 나타납니다) 그리고 그것은 나를 수 있습니다 여기에 설명 된 바와 같이 나는에 첨부 할 aspnet_wp.exe를 프로세스를 볼 수 없습니다 디버그 환경을 선택하지만 문자
No symbols are loaded for any call stack frame. The source code cannot be displayed.
내가 도구 - 설정> 않고로드하는 옵션 -> Debugging-> 내 코드 만 사용 전에서 기호를로드 할 수있는 공통/빈 위치의 경로를 설정합니다. 모든 수동으로 설정 중단 점은 여전히 표시 :
The breakpoint will not currently be hit. No symbols have been loaded for this document.
편집 : 그것이 ntdll.pdb의 상징을 찾고있는 것으로 보인다로드합니다. httpHandler에 대한 심볼 파일을 수동으로로드하더라도 아무런 차이가 없습니다.
코드가 확실히 실행되고 있습니다.
참조하는 기호는 Visual Studio에서 "디버그"구성으로 응용 프로그램을 빌드 할 때 생성되는 기호 데이터베이스입니다. 파일 확장명은 .pdb이며 디버거에서 사용할 수 있는지 확인하십시오. – jlafay