发布函数时未返回Azure Functions V2 Http错误代码内容

时间:2018-07-02 18:18:05

标签: azure azure-functions

我正在使用在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等)的行为相同。

如何发布或配置函数,使其返回自定义错误状态内容?

1 个答案:

答案 0 :(得分:3)

这是最新的Functions v2运行时(2.0.11888)中的回归。有关更多详细信息和解决方法,请参见https://github.com/Azure/app-service-announcements/issues/117

更一般而言,请遵循此仓库以确保您收到所有通知。