В настоящее время я разрабатываю собственные страницы ошибок в своем коде обработки ошибок для моего приложения MVC. Но я не знаю, какие коды статуса HTTP я должен покрыть.Какие коды состояния HTTP для покрытия ошибок обработки MVC
Вопрос: Есть ли типичный список кодов состояния HTTP, на которые нужно ухаживать?
Отдельные статьи, в которых объясняется, как обрабатывать ошибки MVC и страницы пользовательских ошибок, но отображаются только некоторые коды HTTP-статуса: 403, 404 и 500 в коде обработки ошибок. Что относительно кода статуса HTTP: 408 в качестве примера? Должно ли это быть охвачено? Что относительно тонны других кодов состояния - HTTP status codes on wiki
Это может показаться глупым вопросом, но я действительно не знаю ответа и не могу найти информацию об этом. Я что-то пропустил здесь, т. Е. Должен ли покрываться только подмножество кодов состояния?
Если это помогает, ниже показано, что я сделал для обработки ошибок MVC. Этот код (до сих пор с небольшим количеством испытаний, что я сделал) охватывает 404, и все исключения 50x Тип:
В web.config и запись для каждого кода состояния HTTP Я хочу, чтобы покрыть
<httpErrors errorMode="Custom" existingResponse="Replace" >
<remove statusCode="403" />
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="403" responseMode="ExecuteURL" path="/Error/Forbidden" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error" />
</httpErrors>
контроллер ошибки
namespace MyApp.Controllers
{
public class ErrorController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Forbidden()
{
return View();
}
public ActionResult NotFound()
{
return View();
}
Удобные страницы ошибок:
/Views/Shared/Index.cshtml
/Views/Shared/Forbidden.cshtml
/Views/Shared/NotFound.cshtml
ELMAH для регистрации
Дальнейшие выводы на 2 ноября 2015
Что-то я только что обнаружил, что уже смотрел мне в лицо, которое я пропустил ... В IIS страницы ошибок по умолчанию охватываются:
- 401 - Несанкционированное
- 403 - Запрещенный
- 404 - Not Found
- 405 - Метод не разрешены
- 406 - Не Приемлемый
- 412 - Precondition Failed
- 500 - Внутренний сервер Ошибка
- 501 - Не реализовано
- 502 - Плохой шлюз
Если это хороший диапазон, Microsoft имеет т, тогда я пойду этим, как проводник, идущий вперед!
Отличный вопрос. Я всегда удивляюсь тому, как многие веб-разработчики знают и так мало заботятся об HTTP, поэтому здесь замечательно видеть такие вопросы. В то время, когда я писал об этом, я начал писать тривиальный HTTP-клиент в качестве учебного проекта и в итоге провел несколько выходных, изучая директивы кэширования HTTP/1.1. –
Просто пойдите с 402. Всегда хорошо. '402: Требуется платеж' :-) – Paolo
LOL, если только :) @Paolo –