Я понимаю, что они оба не меняют URL-адрес, который видит клиент. Есть ли что-нибудь в них, что делает одно из них предпочтительным по сравнению с другим?
Я планирую использовать его в Application_BeginRequest в Global.asax, но также и на обычной странице aspx.Server.Transfer vs. Context.RewritePath
ответ
Я думаю, что Context.RewritePath()
- лучший вариант. Причина:
Server.Transfer()
каждый раз бросает a ThreadAbortException
. Результат звонка Response.End()
.
Для получения более подробной информации прочитайте следующие статьи MS:
- ThreadAbortException Occurs If You Use Response.End, Response.Redirect, or Server.Transfer
- HttpServerUtility.Transfer Method on MSDN
Дополнительная информация:
Server.Transfer()
не отправляет команду HTTP 302 перенаправления, как Response.Redirect()
бы ,
Согласно HttpContext.RewritePath on MSDN, RewritePath()
используется в состоянии cookieless session.
Кроме того, на другом объекте, Server.Transfer()
и Server.Execute()
очень разные:
Server.Execute()
возвращает управление на первоначальную страницу сразу после того, как, где она была вызвана.
Для примера:
<div>
test 1 <br/>
<% Server.Execute("include.aspx?hello=ok"); %>
test 2 <br/>
</div>
выведет:
тест 1
содержание include.aspx привет = нормально
тест 2
контекст. RewritePath Назначает внутренний путь перезаписи и позволяет запрашивать URL-адрес, отличный от внутреннего пути к ресурсу. RewritePath используется в состоянии cookieless session.
Принимая во внимание, что Server.transfer передает содержимое, собранное для обработки одной страницы на другую страницу.
Чтобы избежать исключения, вызванного Server.Transfer, вы можете использовать Server.Execute. Как Server.Transfer, так и Server.Execute НЕ выдает 302 HTTP-сообщение. Только Response.Redirect выдает этот заголовок и просит браузер перейти в новый пункт назначения, утверждая, что он был временно перемещен. Как Server.Transfer, так и Server.Execute позволяют выполнять другую страницу для обслуживания текущего запроса.
- 1. Server.Transfer() Vs. Server.Execute()
- 2. HttpServerUtility.Transfer vs Server.Transfer?
- 3. 404 page response.redirect vs server.transfer
- 4. Gloabl.asax Context.RewritePath IIS 7.5
- 5. Server.Transfer не работает
- 6. sharepoint: Server.Transfer?
- 7. Server.Transfer Method
- 8. Когда использовать Server.Transfer или Response.Rewrite?
- 9. Почему метод Context.RewritePath не работает на iis
- 10. Server.transfer вызывает HttpException
- 11. asp.net Server.Transfer() исключение
- 12. Server.Transfer() в vb.net
- 13. Server.Transfer и System.Threading.ThreadAbortException
- 14. Response.TransmitFile и Server.Transfer
- 15. жерех Server.Transfer поставил параметр
- 16. Server.Transfer не работает?
- 17. Server.Transfer и Getlastwritetime
- 18. Server.Transfer внутренней виртуального приложения
- 19. Server.Transfer() и http 301
- 20. Server.transfer postback issue
- 21. Server.Transfer + Jquery '$' не определен
- 22. server.Transfer with query string
- 23. ASP.NET Server.Transfer() проблема
- 24. server.transfer в asp.net?
- 25. Server.Transfer показывает повторяющиеся страницы
- 26. Server.Transfer, состояние сеанса null
- 27. classic asp server.transfer error
- 28. Server.Transfer в Global.asax
- 29. HTTPModule BeginRequest должен нам Response.Redirect или Server.Transfer
- 30. Server.Transfer не работает на IIS7