2010-11-22 2 views
1

작은 IIS7 기본 모듈을 개발 중입니다.IIS7 기본 모듈 문제

IIS에서 페이지 요청을 할 때 출력을 얻지 못하는 것 같습니다.

그래서 나는 msdn 샘플 중 하나를 먼저 작동 시키려고 노력했습니다. 문제는 - 나도 ...

샘플은 여기에 그에서 모든 출력을 얻을 수 없습니다 내가했던

http://msdn.microsoft.com/en-us/library/ms693622(VS.90).aspx

다음

합니다. 내가 RegisterModule

을 내 보낸 것을 확인하십시오. 모듈을 Win32 dll로 빌드

. "hello world"를 표시하는 web.config 및 test.aspx 페이지가있는 테스트 사이트를 추가했습니다.

. IIS gui를 사용하여 서버 수준의 IIS에 네이티브 모듈을 추가했습니다.

. 내 모듈의 "* .aspx"에 대한 사이트 수준의 모든 동사에 대한 처리기 매핑을 추가했습니다.

. 하지만 아무것도 -이 시점에서

<system.webServer> 
    <handlers> 
     <add name="EndRequestModule" path="*.aspx" verb="*" modules="MyHttpModule" scriptProcessor="<REALPATHISINHERE>\endRequestModule.dll" resourceType="Unspecified" preCondition="bitness32" /> 
    </handlers> 
</system.webServer> 

내가 요청을 할 때 이벤트 뷰어에서 줄을 볼 것으로 예상하고 있습니다 : 내 Web.config의를 포함하도록 업데이트되었습니다 볼 수 없습니다 IIS

다시 시작됩니다.

또한 모듈이 요청을로드하거나 요청할 때 "OutputDebugString"호출을 추가했지만 거기에 출력이 표시되지 않아 뭔가 구성 파일이 누락되었다고 생각됩니다.

저는 Windows 7 Ultimate x64 및 VS2010을 실행하고 있습니다. 서버 OS가 아니기 때문에 설치하거나 다른 것들을 (아마도 x86과 x64 사이에서) 설정해야하는 추가 항목이 있습니까?

제가 누락 된 부분에 대한 의견은 환영받을 것입니다.

감사합니다.

+0

fwiw procexp는 내 w3wp 프로세스가 x64이고, 내 dll이 현재 x86이며, x64에 대한 프로젝트 구성을 추가하고 x64 결과를 x64 결과로 재구성하여 서비스를 사용할 수없고 응용 프로그램 풀이 중지되고 이벤트 뷰어에 액세스가 표시됨을 보여줍니다. 위반 오류가 발생했습니다 .... x64와 x86의 차이는 무엇입니까? x64 대신 x86으로 실행하여 테스트 사이트가 POC를 테스트 할 수 있습니까? –

답변

2

수정 됨.

특별히 필터링해야하는 경우가 아니면 처리기 매핑이 필요하지 않으며 모듈을 서버 수준에 설치 한 다음 모듈을 필요로하지 않는 사이트의 사이트 수준에서 제거하면 충분합니다.

IIS의 응용 프로그램 풀 고급 설정 - POC를 테스트하기 위해 32 비트 응용 프로그램을 TRUE로 설정합니다.

그런 다음 x64 플랫폼 용 DLL을 다시 작성하고 기존 모듈을 제거한 다음 x64 모듈을 설치하고 32 비트 응용 프로그램 사용을 FALSE로 설정하고 x64 모듈을 테스트합니다.

OutputDebugString 호출이 이제 DbgView에도 표시됩니다.

+0

Win7 64 및 VS2010에서 동일한 작업을 시도하고 있습니다. x64 용 모듈을 만들었지 만 응용 프로그램 풀이 멈추고 503 오류가 발생합니다. 나는 당신이 위에서 말한 것을 정확하게했습니다. 아직 문제 해결 중입니다. 네가 나에게 줄 수있는 조언이 있니? –

+0

실제로 나는 내 문제가 무엇인지 알았고 IIS 7이 내 프로필에있는 Visual Studio 프로젝트의 모듈을로드 할 수 없다는 사실을 알았습니다. 내 프로필 디렉토리 외부에서 DLL을 복사해야만 IIS 7에서로드 할 수있었습니다. 하하! –