0

У меня есть пользовательский модуль перезаписи и когда передаются конкретные параметры строки запроса, мне нужно иметь возможность вызвать server.transfer, а не response.redirect из-за программного обеспечения и отслеживания adserveСобытие Lifecycle Application не запускается, когда Server.Transfer

в Init Событии RewriteModule я зарегистрировать событие:

BeginRequest PreRequestHandlerExecute ReleaseRequestState

когда Response.Redirect называется событием ReleaseRequestState на самом деле называется и модулем перезаписи компл ю и новый элемент управления URL, устанавливается

когда Server.Transfer называется тем событие ReleaseRequestState не вызываются и дружественный URL, не установлен

я думаю, что я понимаю, что отличается между Response.Redirect и сервером .Transfer, но я не могу понять, почему событие на самом деле не вызвано - вызывает ли событие Session.End или Session.Abandon, и это событие никогда не запускается? или нечто совсем другое здесь происходит

благодаря

PAUL

ответ

0

Я предполагаю, что это тонкие различия между ними.

Response.Redirect выполняет переадресацию на стороне клиента - это означает, что браузер-клиент отправляет сообщение с запросом на другой URL-адрес и, следовательно, дает вам новый запрос. (http://msdn.microsoft.com/en-us/library/y4k58xk7.aspx). Он просто перестает работать на текущей странице и начинает работу на другой странице - никакого нового запроса.

+0

Привет, спасибо, что вернулись ко мне - если нет нового запроса, то, несомненно, он продолжит называть событие PostReleaseState, а не просто убивать запрос? – stack72

+0

Похоже, должно. Если в конвейере не будет какой-то магии, чтобы узнать, было ли приобретено государство. Если состояние не было получено (например, для запроса .css), возможно, фреймворк не вызывает ReleaseRequestState. Только догадка - я этого не знаю. – PatrickSteele

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