Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Страница ошибки в ASP.NET MVC / 4 сообщений из 4, страница 1 из 1
12.09.2013, 11:29
    #38394460
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страница ошибки в ASP.NET MVC
Здравствуйте! У меня вопрос.

В Web.config указаны страницы для отображения информации о некоторых перехваченных HTTP ошибках:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<system.webServer>
   ... 
   <httpErrors errorMode="DetailedLocalOnly" existingResponse="Replace" defaultResponseMode="ExecuteURL" >
      <remove statusCode="403" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <remove statusCode="500" subStatusCode="-1" />
      <error statusCode="403" path="/Error/Http403" responseMode="ExecuteURL" />
      <error statusCode="404" path="/Error/Http404" responseMode="ExecuteURL" />
      <error statusCode="500" path="/Error/Http500" responseMode="ExecuteURL" />
    </httpErrors>
    ...
</system.webServer>


Есть контроллер Error и 3 действия, каждое самостоятельно устанавливает код своей ошибки и возвращает вью.

Работает всё как надо. Но есть вопрос. Для начала приведу некоторые значения Request, которые я получаю в контроллере Error:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Request.IsAjaxRequest = False
Request.HttpMethod = GET
Request.AppRelativeCurrentExecutionFilePath = ~/Error/Http500
Request.CurrentExecutionFilePath = /Error/Http500
Request.FilePath = /Error/Http500
Request.Path = /Error/Http500к
Request.PathInfo = 
Request.QueryString = 500%3bhttp%3a%2f%2flocalhost%3a49668%2fTest%2fThrowInAction
Request.RawUrl = /Test/ThrowInAction
Request.UserAgent = Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
Request.UserHostAddress = ::1
Request.UrlReferrer = http://localhost:49668/Test/Index
Request.RequestContext.RouteData.Values = [ action = Http500, controller = Error ]
Request.Url.AbsoluteUri = http://localhost:49668/Error/Http500?500;http://localhost:49668/Test/ThrowInAction


Видно, что в полях RawUrl и Url лежит оригинальная ссылка, по которой перешёл пользователь, а в остальных (Path, FilePath...) ссылка, на которую было выполнено внутреннее перенаправление.

Кто-нибудь знает природу такого поведения? Я не нашёл информации в MSDN (может не достаточно хорошо искал).
...
Рейтинг: 0 / 0
12.09.2013, 12:47
    #38394582
Zoria
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страница ошибки в ASP.NET MVC
hVostt,

а в смысле природу? ну работает оно так, при редиректе добавляет урл исходный.
...
Рейтинг: 0 / 0
12.09.2013, 13:12
    #38394634
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страница ошибки в ASP.NET MVC
Zoria,

то, что добавляет понятно. почему оно оказывается в RawUrl?
...
Рейтинг: 0 / 0
12.09.2013, 13:13
    #38394640
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страница ошибки в ASP.NET MVC
Zoria,

и кроме того, передаётся также и правильный тип запроса (IsAjaxRequest)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Страница ошибки в ASP.NET MVC / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]