asp.net-mvc
Обработка ошибок Http
Поиск…
Вступление
Каждый веб-сайт должен обрабатывать ошибки. Вы можете позволить своим пользователям увидеть 404 или 500 страниц ошибок, которые выкладывают IIS, или, используя Web.Config и простой контроллер, вы можете захватить эти ошибки и предоставить свои собственные страницы ошибок.
Основная настройка
В этом примере рассмотрим создание настраиваемой страницы ошибок для 404 Page Not Found и 500 Server Error. Вы можете расширить этот код, чтобы захватить любой код ошибки, в котором вы нуждаетесь.
Web.Config
Если вы используете IIS7 и выше, игнорируйте узел <CustomError..
и вместо этого используйте <httpErrors...
Добавьте в узел system.webServer
:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
<error statusCode="500" path="/error/servererror" responseMode="ExecuteURL" />
</httpErrors>
Это указывает сайту направить любые 404 ошибки в ~/error/notfound
и любые 500 ошибок в ~/error/servererror
. Он также сохранит ваш запрошенный URL (подумайте о переносе, а не перенаправляйте ), чтобы пользователь никогда не увидел URL страницы ~/error/...
Затем вам нужен новый контроллер Error
поэтому ...
public class ErrorController : Controller
{
public ActionResult servererror()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View();
}
public ActionResult notfound()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
}
Ключевым моментом здесь является Response.TrySkipIisCustomErrors = true;
, Это приведет к обходу IIS и приведет к прокрутке страницы ошибок.
Наконец, создайте соответствующие NotFound
и ServerError
Views и ServerError
их, чтобы все было хорошо и без проблем с дизайном вашего сайта.
Привет, оригинальные страницы ошибок.