Никто, по-видимому, не упомянул, что он показывает необработанный URL-адрес, фактически полученный IIS, до того, как могли произойти какие-либо манипуляции с его отправкой по IIS или вашей файловой системе, например с перезаписью URL.
Скажем, вы установили страницу ошибки на /error
в приложении MVC и настроили свой webconfig на замену страниц ошибок своей пользовательской страницей ошибок в этом месте. Таким образом, при получении ошибки на /faultypage
пользователь получит страницу на /error
, но URL-адрес в адресной строке вашего браузера будет по-прежнему сообщать www.mysite.com/faultypage
- это передача или перезапись.
Теперь на вашем контроллере ошибок, если вы посмотрите на Request.Url
, это будет что-то вроде www.mysite.com/error
, и Request.RawUrl
скажет (более полезно?) /faultypage
, что является фактическим запросом пользователя, а не страница, которая в данный момент выполняется.