2012-01-03 1 views
0

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에 대한 심볼 파일을 수동으로로드하더라도 아무런 차이가 없습니다.
코드가 확실히 실행되고 있습니다.

+1

참조하는 기호는 Visual Studio에서 "디버그"구성으로 응용 프로그램을 빌드 할 때 생성되는 기호 데이터베이스입니다. 파일 확장명은 .pdb이며 디버거에서 사용할 수 있는지 확인하십시오. – jlafay

답변

1

문제는 .Net이 버전 IIS보다 먼저 설치 되었기 때문입니다. "Edit configuration"버튼이 비활성화되어이 사이트가 발견되었습니다. http://www.warfiblog.com/edit-configuration-disabled. 다음 지침 :이 디버깅 문제를 해결하는 것이 일에

You will need to go to Start -> Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 Command Prompt. On the prompt write down this command: 
aspnet_regiis -r 
The above command will register dot net with IIS and now the button will also be enabled. 

!

2

예외가 발생하기 몇 라인 전에 Debugger.Break()을 추가하십시오. 이렇게하면 디버거를 부착하라는 팝업 창이 나타납니다.

+0

도움을 주셔서 감사합니다. 그것은 당신이 말한대로 했는데도 여전히 디버깅 할 수는 없습니다. –

+0

자세한 내용은 편집을 참조하십시오. –