AppHarbor MVC - невозможно использовать код статуса HttpNoContent

Мне нужно иметь возможность отвечать на запросы с кодом http http 204, но appharbor только возвращает ошибку 500. Мой код контроллера выполняется правильно, но когда вызывается приведенный ниже код, я вижу только ошибку 500 в fiddler.

protected ViewResult HttpNoContent()
{
    Response.StatusCode = (int)HttpStatusCode.NoContent;

    return View("NoContent");
}

1 ответ

Решение

Цитата из спецификации (я выделил важную часть жирным шрифтом):

Ответ 204 НЕ ДОЛЖЕН включать тело сообщения и, таким образом, всегда заканчивается первой пустой строкой после полей заголовка.

Вы не соблюдаете это правило. Код статуса 204 означает отсутствие содержимого, и все же вы возвращаете представление. Попробуйте вернуть EmptyResult:

protected ViewResult HttpNoContent()
{
    Response.StatusCode = (int)HttpStatusCode.NoContent;

    return new EmptyResult();
}
Другие вопросы по тегам