Я работаю с функциями Azure V2, разрабатываемыми в Visual Studio 2017. Я хочу вернуть пользовательский контент для кодов ошибок HTTP, которые возвращает моя функция. Это отлично работает, когда я тестирую на месте. Но когда я публикую функцию в Azure, пользовательский контент больше не возвращается.
Это легко воспроизвести. Вот функция (взята из нового шаблона проекта VS 2017 Azure Function):
using System;
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs.Host;
using Newtonsoft.Json;
namespace FunctionApp1
{
public static class Function1
{
[FunctionName("StatusCodeTest")]
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
{
return new NotFoundObjectResult("Sample content text.");
}
}
}
Запускать локально и выдавать сообщение или получить от почтальона. Он вернет код состояния 404 Not Found и отобразит тело ответа «Образец содержимого».
Опубликуйте функцию в Azure и вызовите ее там - либо почтальоном, либо используя функцию тестирования или запуска портала Azure. 404 по-прежнему возвращается, но пользовательский вывод заменяется общим сообщением: «Ресурс, который вы ищете, удален, его имя изменено или временно недоступно».
То же поведение для других ... ObjectResult кодов состояния, таких как BadRequestObjectResult и т. Д.
Как я могу опубликовать или настроить мою функцию так, чтобы она возвращала содержимое пользовательской ошибки?