MVC 5 Web API IIS Удаление тела ответа - PullRequest
0 голосов
/ 05 марта 2020

Я использую MVC 5 и имею ExceptionFilterAttribute, который я использую, чтобы перехватывать ошибки в моем приложении и пересылать их как HttpResponseException с кодом состояния Http 500.

 throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
    ReasonPhrase = ReplaceNewLinesWithBreaks(reasonPhrase),
    Content = (entityErrors.Count > 0 ? (new StringContent(Json.Encode(new { EntityErrors = entityErrors }))) : null)
});

У меня проблема в том, что в некоторых средах IIS, похоже, удаляет ошибку из ответа.

Я пробовал несколько вещей, таких как установка TrySkipIisCustomErrors = true;, но, похоже, ничего не изменилось.

Должно быть где-то разница в конфигурации, но я не знаю, в чем проблема.

РЕДАКТИРОВАТЬ: Еще раз посмотрев на нее, причина фраза, которая удаляется. У меня есть подозреваемый, это может быть связано с активированным http / 2.0.

РЕДАКТИРОВАТЬ 2: Это был активированный http / 2.0, который вызвал мою проблему. Вместо того, чтобы получать заголовок статуса, такой как:

500 An error has occurred

с http / 2.0, вы не получите текст статуса (часть http / 2.0 spe c, я считаю) и вместо этого вы просто получаете код состояния. т.е.:

500

...