2015-06-23 3 views
3

У меня огромный сайт с огромным бэкэндом. Где-то, так или иначе, появляется ответ Response.Redirect при попытке открыть сайт (среда отладки).ASP.NET Узнайте, какой Response.Redirect перенаправляется?

Есть ли способ узнать, какой Response.Redirect вызывает перенаправление?

Определенным способом было бы установить точку останова отладки на каждом Response.Redirect на всем веб-сайте. Но это много усилий.

Еще одна идея, которую я имел, заключалась в том, чтобы остановиться на «ThreadAbortException» (который вызывается Response.Redirect) с помощью «Debug-> Exceptions ..». Но это не работает. Кажется, что кадр или что-то еще не выполнено, чтобы получить перерыв на нем.

Последняя попытка состояла в том, чтобы посмотреть стек вызовов. Но стек никогда не попадает в последний Response.Redirect, потому что это новый вызов кадра.

ответ

1

Ну, у меня есть идея, которая решила мою проблему, но потребовала массивной замены кода (что не проблема с «Найти и заменить»).

Я создал статический класс:

public static class OwnResponse 
{ 
    public static void Redirect(string Url, bool EndResponse = true) 
    { 
     HttpContext.Current.Response.Redirect(Url, EndResponse); // set the breakpoint here 
    } 
} 

Тогда я заменил все Response.Redirect в коде с OwnResponse.Redirect. Теперь я смог установить точку останова на первую строку в классе. Я позвонил на сайт, и точка останова попала. Затем я просто смотрел стек вызовов и знал, где происходит перенаправление.

Существует еще одно возможное решение, которое требует немного больше работы. Вы должны получить «Stepping into .NET code» для запуска. Затем вы можете легко установить точку прерывания в первой строке метода .NET.

0

Вы можете использовать ниже код на целевой странице: -

string yourPreviousUrl = Request.UrlReferrer.ToString(); 

if(!string.IsNullOrEmpty(yourPreviousUrl)) 
{ 
    //Referrer was found! 
} 
else 
{ 
    //Unable to detect a Referrer 
} 

Как упоминается в официальном сайте: -

HttpRequest.UrlReferrer недвижимости

Получает информацию об URL из предыдущий запрос клиента о том, что связан с текущим URL.

0

Вы можете попытаться реализовать трассировку и сохранить результаты в файле. Данные трассировки могут помочь вам определить перенаправление.

Вот ссылка с некоторыми более фона на отслеживании ASP.NET:

http://www.codeproject.com/Articles/82290/Step-by-Step-Guide-to-Trace-the-ASP-NET-Applicatio

0

Использование fiddler или другой инструмент для захвата HTTP трафика и захвата сетевого трафика. Вы должны увидеть запрос, который был инициирован, и взять его оттуда.