Aspx перенаправляется на себя (точно такой же URL) - сначала статус 302, затем статус 200 - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над веб-проектом (веб-формы), и у меня возникла странная проблема: когда я обновляю свою страницу, вызывается событие Page_Load и возвращается статус 302.Redirect переходит на точно такой же URL-адрес, снова запускается Page_Load и возвращается статус 200.

Несколько фактов:

  • AutoEventWireup свойство установлено в false
  • свойство MasterPageFile установлено
  • Я не нашел ни одного<img src=""> или <img src="#"> на странице
  • перенаправление не всегда происходит (допустим, это происходит на 80% запросов для одного и того же aspx)

Как предотвратить это поведениеи как добиться загрузки только одной страницы за запрос?Какой смысл перенаправления на точно такой же URL-адрес?

Tnx заранее!

РЕДАКТИРОВАТЬ 2018-05-23 16: 15: Я прикрепляю экран печатиот Google Dev Tools: Google Dev Tools

РЕДАКТИРОВАТЬ 2017-05-29 09: 13: Хорошо, очевидно, это ожидаемое поведение. Этот ответ относится к скручиванию, но я думаю, что он также отвечает на мой вопрос.Переадресация прерывается и вызывается IIS.Мой следующий вопрос: как обнаружить такие перенаправления и предотвратить запуск дублирующегося кода.В моем случае я делаю некоторые записи доступа, а в случае перенаправления доступ к определенной странице регистрируется дважды ...

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Хорошо, я нашел решение.Я должен был упомянуть, что приложение «размещено» на SharePoint.Я считаю, что проблема в том, что IIS только обслуживает, но ничего не знает о конкретной странице.Каждый раз, когда срок действия кэша истекает или происходит перезапуск, IIS запрашивает SP о содержимом, а когда содержимое возвращается, IIS сначала отвечает со статусом «302 найдено», а затем со статусом «200».

Моим решением было проверить состояние ответаи оставьте событие, если статус ответа равен состоянию «302 найдено» (код VB.NET):

If Response.StatusCode = HttpStatusCode.Found Then Return
0 голосов
/ 23 мая 2018

У меня еще недостаточно представителей, чтобы комментировать, но если вы пытаетесь что-то сделать только при начальной загрузке страницы, вы можете добавить:

if(!Page.IsPostBack)
{
     //your code
}

в событие Page_Load в коде позади,Это будет выполняться только при начальной загрузке страницы, а не при обратной передаче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...