Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Собственная страница ошибки


Автор: Miller_time 4.7.2013, 22:56
Как сделать страницу для ошибки "Обнаружено потенциально опасное значение" что бы логировать действие и перенаправить пользователя на подготовленную страницу ? Проект MVC 4, прогуглил толку ноль выручайте..

Автор: Экскалупатор 5.7.2013, 14:16
там где надо кидай exception(лучше свой, хотя и не обязательно). В global.asax есть Application_Error(), в нем делай обработку для этого исключения, логирование там, перенаправление и прочее...

Автор: Miller_time 5.7.2013, 23:56
Спасибо решил вот таким образом, не совсем правильно но как вариант:

В Global.asax подписываемся на следующие событие:

Код

        protected void Application_Error(object sender, EventArgs e)
        {
            Exception lastError = Server.GetLastError();
            if (lastError is HttpRequestValidationException)
            {
                //Код ошибки указанный ваше
                if (lastError.TargetSite.MetadataToken == 100673510)
                {
                    Response.Redirect("~/page/166");//Перенаправление на вашу страницу
                }
            }
        }



Теперь при возникновение выше указанной ошибки вас будет перенаправлять на указанную страницу. 

Автор: Экскалупатор 6.7.2013, 01:24
да, это так как я и говорил. почти в точности.

Автор: jonie 9.7.2013, 23:05
ну, всё неправильно 8-)
1. для логирования ошибок нынче модно использовать ELMAH - просто добавляете модуль и он словит все ошибки типа "желтый экран смерти".
2. для перенаправления и прочего есть web.config:
Код

    <system.web>
      <customErrors mode="On" defaultRedirect="~/Error">
        <error statusCode="404" redirect="~/Error/NotFound"></error>
      </customErrors>
   </system.web>
и не забывать собственно в хедерах ставить корректный код ошибки.

Автор: Miller_time 11.7.2013, 16:50
Дак при этом эксепшене код ошибки не возвращается он может быть идентичен коду ошибки например бд, а за модуль спасибо, спасибо сейчас буду ковырять.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)