2011-11-22 4 views
0

IIS 6이고 ASP.Net 4.0 사이트는 SOAP 역방향 프록시 역할을하는 단일 페이지입니다. 응답 노드에서 문제 노드를 삭제하고 추적 노드를 추가하려면 반환 내용을 수정해야합니다. 서버 쪽 리디렉션 요청 페이로드 잘림

모든 주소에 대한 역방향 프록시로 그 기능을 용이하게하기 위해

, 나는 "/Default.aspx에"(내 애플 리케이션에 대한 페이지)

의 사용자 정의 "URL"로 설정 서버에서 404가 페이로드가없는 요청의 경우 WSDL URL과 같이 완벽하게 작동합니다. 그것은 목표 시스템으로부터 적절한 URL을 요청하고, 응답을 얻고 그것을 되돌려 보냅니다.이 점에서 꽤 투명합니다.

그러나 SOAP 요청이 입력 페이로드로 작성되면 코드의 Request.InputStream은 항상 비어 있습니다. SOAPUI를 사용하여 한 가지 예외는 있지만 비어 있음. 끝점을 무시하고 요청을 /default.aspx로 직접 보내면 입력 페이로드가 수신됩니다. 따라서 커스텀 404 핸들러는 서버 측에서 요청을 전송할 때 페이로드를 제거하는 것으로 결정되었습니다. 페이로드가 전송되고 있음을 알았습니다. 서버에서도 wiresharked를했습니다. 하지만 Request.ContentLength가 원래 요청에 대한 올바른 콘텐츠 길이를 보여 주더라도 Request.InputStream의 내용을 기록하는 코드를 추가하면 내용이 비어 있습니다.

나는 ASP.Net을 사용하여 일반적인 IIS 404 처리기가 처리하도록 허용하는 대신 직접 요청을 가로 채기 위해 와일드 카드 매핑을 사용하는 경우에도 좋은 방법을 찾고있었습니다. 설정을 올바르게하지 못하거나 도움이 될 것이라고 확신합니다. (그러나 나는 그것을 원합니 까?)

마지막으로 MVC 프레임 워크를 설치할 수있는 법인 권한이 없습니다.

따라서 IIS에 대한 일부 구성이 필요합니다.이 기능이 제대로 작동하지 않거나 요청한 페이로드가 제 웹 페이지에 도착하도록하는 다른 방법이 필요합니다.

감사합니다.

답변

1

모든 요청에 ​​매핑 된 HTTP 처리기를 사용하면 어떨까요?

a wildcard application mapping as detailed here 및 올바르게 configure your HTTP Handler을 추가해야합니다.

+0

보기 - 다시 연락 드리겠습니다! – Dracorat

+0

당신은 선생님 이십니다! 물론 위에서 설명한 aspx와 404 핸들러를 사용하려고했습니다. 링크 된 HTTP 처리기 메소드를 실제로 인식하지 못했습니다. 링크 된 기사의 도움으로 코드를 변경했습니다 (링크 중 하나에 http://msdn.microsoft.com/en-us/library/ms228090.aspx 링크가 있음). 그것은 작동합니다! 정말 고마워요! – Dracorat

+1

@Dracorat 기꺼이 도와주세요. –