Response.Redirect идет в неправильный пункт назначения - PullRequest
2 голосов
/ 31 января 2012

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 01 февраля 2012

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

0 голосов
/ 03 июля 2012

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

0 голосов
/ 01 февраля 2012

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

Response.Redirect ("url_here", true);

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

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

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

C: \ Windows \ System32 \ drivers \ etc \ hosts

Надеюсь, это будет сделано.

...