2012-01-31 2 views
2

Я работаю над сайтом C# .NET, на котором пользователь может щелкнуть ссылку и перейти на другую веб-страницу на отдельном веб-сайте, также принадлежащем нам. Код очень легко понять, есть переключатель, за которым следует вызов Response.Redirect(the_url_we_want_to_go_to).Response.Redirect отправляется в неправильный адрес

Я отлаживал его несколько раз, и я могу подтвердить, что, когда отладчик ударяет по этой строке перенаправления, этот параметр правильный. Он указывает на версию QA этого другого веб-сайта. qa.samplesite.com позволяет говорить. Однако браузер туда не отправляется. Вместо этого браузер вместо этого обращается к тестовой среде. Позволяет называть его test.samplesite.com. Это проблема.

Я понимаю, что между серверами приложений есть миллионы вещей, на которые расположены эти два отдельных веб-сайта, но, возможно, один из вас уже видел что-то подобное. Более конкретно, есть ли способ поймать исходящий трафик в отладчике или есть способ увидеть исходящий трафик на самом сервере приложений (в IIS)? Я знаком с перехватом входящего трафика внутри httpmodules. Возможно, это не вопрос stackoverflow ...

Спасибо за помощь!

+2

проверить локальный файл 'host' на сервере/рабочей станции, на котором размещено приложение, и убедиться, что запрос не перенаправлен ... – xandercoded

+0

Вы можете использовать wirehark для захвата пакетов и их проверки. Возможно, параметр перезаписи URL в IIS ... –

+0

nslookup (из командной строки) позволит вам проверить, разрешено ли доменное имя ip, которое вы ожидаете от использования своего qa-сайта. –

ответ

2

Используйте очень хороший HTTP-сниффер «Fiddler». Это позволит вам увидеть все HTTP-запросы. Вы должны подтвердить, что: а) целевая ссылка перенаправления правильная (она может быть перезаписана позже в конвейере запроса. Response.Redirect не является окончательным словом) и b) что у вас нет второго перенаправления после первого.

+1

Как я предположил, я использовал скрипач и вижу, что приложение перенаправляется должным образом. Есть что-то в конце приема, отправляющем его в тестовую среду. СПАСИБО ЗА ВАМ ПОМОЩЬ – james

0

Вы можете попробовать использовать перегрузку Response.Redirect в

Response.Redirect ("url_here", правда);

Это остановит ответ на текущей странице (поскольку endResponse установлен в true) и перенаправляется на URL.

Если у вас все еще есть проблема, возможно, это может быть некоторая ошибка разрешения имен.

Проверьте, чтобы увидеть вас ваши хосты файлы в директории окон найденных здесь

C: \ Windows \ System32 \ Drivers \ Etc \ хостов

Надежда это будет делать.

0

Я, наконец, понял, что у меня была аналогичная проблема. Это было довольно глупо. Я скопировал некоторые .aspx-страницы, внесшие незначительные изменения. Страница, на которой я попытался перенаправить клиента, если бы это было неверно в CodeBehind. Поэтому он перенаправляется на нужную страницу, но загружает CodeBehind с другой страницы!

Смежные вопросы