Отправить сообщение с actionresult - PullRequest
1 голос
/ 21 марта 2019

Мне нужно вернуть ошибку сервера из функций Azure.

Теперь я реализую то же самое, используя InternalServerErrorResult().Он отправляет только код ошибки, и ответ / сообщение не могут быть отправлены с помощью этой функции.

Как реализовать обработчик исключений, когда код ошибки и сообщение могут отправляться вместе, используя actionresult в функциях Azure

текущая реализация

catch (Exception ex)
            {
                log.LogInformation("An error occured {0}" + ex);
                //json = new Response(ex.StackTrace, AppConstants.ErrorCodes.SystemException).SerializeToString();
                return (ActionResult)new InternalServerErrorResult();
            }

это возвращает с пустым ответом в почтальоне с ошибкой 500

Ответы [ 2 ]

2 голосов
/ 21 марта 2019

Обратите внимание, что это из Microsoft.AspNetCore.Mvc пространства имен:

var result = new ObjectResult(new { error = "your error message here" })
{
    StatusCode = 500
};

На основе настроенных форматеров он вернет сериализованный объект клиенту.Для JSON (по умолчанию) он вернет следующее:

{ "error" : "your error message here" }
0 голосов
/ 21 марта 2019

Для отправки сообщения с кодом состояния вы можете использовать return StatusCode(httpCode, message), который является ObjectResult .

Например:

return StatusCode(500, "An error occurred");

Вы также можете передать объект (например, используя HttpStatusCode enum):

return StatusCode((int)HttpStatusCode.InternalServerError, json);
...