我正在使用在Visual Studio 2017中开发的Azure Functions V2。我想为函数返回的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状态代码,并显示“ Sample content text”的响应正文。
将函数发布到Azure并在其中调用它-通过邮递员或使用Azure门户的“测试或运行”功能。仍然返回404,但是自定义输出被一条通用消息替换,“您正在寻找的资源已被删除,名称已更改或暂时不可用。”
其他 ... ObjectResult 状态代码(例如BadRequestObjectResult等)的行为相同。
如何发布或配置函数,使其返回自定义错误状态内容?
答案 0 :(得分:3)
这是最新的Functions v2运行时(2.0.11888)中的回归。有关更多详细信息和解决方法,请参见https://github.com/Azure/app-service-announcements/issues/117。
更一般而言,请遵循此仓库以确保您收到所有通知。