2012-01-31 3 views
2

나는 사용자가 링크를 클릭하고 우리 소유의 별도 웹 사이트의 다른 웹 페이지로 리디렉션되는 C# .NET 웹 사이트에서 작업하고 있습니다. 코드는 매우 이해하기 쉽습니다. 전환 후 Response.Redirect(the_url_we_want_to_go_to)을 호출하면됩니다.Response.Redirect 잘못된 대상으로 이동

나는 그것을 여러 번 디버깅했으며 디버거가 매개 변수가 올바른 리디렉션 라인에 도달했을 때 확인할 수 있습니다. 그것은이 다른 웹 사이트의 QA 버전을 가리 킵니다. qa.samplesite.com 수 있습니다. 그러나 브라우저는 거기에 가지 않습니다. 대신 브라우저가 대신 테스트 환경을 친다. 그것을 test.samplesite.com이라고 부르 자. 이게 문제 야.

나는이 두 개의 별도 웹 사이트가있는 앱 서버 사이에 수 백만 가지가 있다는 것을 알고 있습니다. 그러나 어쩌면 당신 중 한 명은 전에 이와 비슷한 것을 보았을 것입니다. 좀 더 구체적으로 말하자면, 디버거에서 아웃 바운드 트래픽을 잡는 방법이 있습니까? 아니면 (IIS에서) 앱 서버 자체에서 아웃 바운드 트래픽을 볼 수있는 방법이 있습니까? 나는 httpmodule 내부의 인바운드 트래픽을 차단하는 것에 익숙하다. 어쩌면이 is not stackoverflow 질문 ...

도와 줘서 고마워!

+2

응용 프로그램이 호스트되는 서버/워크 스테이션의 로컬'host' 파일을 확인하고 요청이 다시 라우팅되지 않는지 확인하십시오. – xandercoded

+0

wireshark를 사용하여 패킷을 캡처하고 검사 할 수 있습니다. IIS에서 URL 재 작성 설정 ... –

+0

nslookup (명령 줄에서)을 사용하면 도메인 이름이 qa 사이트를 사용할 것으로 예상되는 IP로 확인되는지 확인할 수 있습니다. –

답변

2

아주 좋은 HTTP 스니퍼 "Fiddler"를 사용하십시오. 모든 HTTP 요청을 볼 수 있습니다. a) 리디렉션 대상이 정확해야합니다 (요청 파이프 라인에서 나중에 덮어 쓸 수 있습니다 .ResponseRedirect는 최종 단어가 아닙니다). b) 첫 번째 리디렉션 이후에 두 번째 리디렉션이없는 것을 확인하십시오.

+1

제안 사항 필자를 사용하여 앱이 제대로 리디렉션되는 것을 볼 수 있습니다. 수신 환경에는 테스트 환경으로 보내는 것이 있습니다. 당신을 도와 주셔서 감사합니다. – james

0

당신은

Response.Redirect를 ("url_here", TRUE)로 Response.Redirect를의 오버로드를 사용하여 시도 할 수 있습니다;

그러면 현재 페이지의 응답이 중지되고 (endResponse가 true로 설정 됨) URL로 리디렉션됩니다.

여전히 문제가 발생하면 이름 확인 오류 일 수 있습니다.

점검

C 여기에있는 윈도우 디렉토리에 당신에게 당신의 호스트 파일을 볼 수 있습니다 : \ WINDOWS \ SYSTEM32 \ 드라이버 \ 등 \ 호스트이 그것을 할 것입니다

희망.

0

마침내 나는 비슷한 문제를 발견했습니다. 그것은 아주 바보 같았습니다. 사소한 변경을하는 일부 .aspx 페이지를 복사했습니다. 클라이언트를 리디렉션하려고 시도한 페이지에 "CodeBehind"설정이 잘못되었습니다. 따라서 올바른 페이지로 리디렉션되었지만 다른 페이지의 CodeBehind를로드했습니다.