You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 Azure HTTP Trigger函数返回空对象异常排查

.NET 8 Azure HTTP Trigger返回空对象问题解决

问题背景

使用隔离进程模型的Azure HTTP Trigger函数,通过OkObjectResult返回对象列表时,Postman收到空对象响应。该问题仅在.NET 8环境出现,.NET 6下正常运行。

核心原因

.NET 8隔离进程Azure Functions的默认Json序列化配置发生变化,结合启用的Nullable特性,导致未显式配置时,对象无法被正确序列化输出。

解决方案

方案1:直接返回对象(推荐)

隔离进程模型下,直接返回业务对象而非IActionResult,函数运行时会自动处理序列化:

[Function("Function")]
public List<MyClass> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
    _logger.LogInformation("C# HTTP trigger function processed a request.");
    List<MyClass> list = new List<MyClass>()
    {
        new MyClass()
        {
            Name="abc"
        }
    };
    return list;
}

方案2:配置Json序列化选项

在Program.cs中显式配置Http Json序列化规则,适配业务对象:

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        builder.UseHttpMiddleware();
        // 配置Json序列化
        builder.ConfigureHttpJsonOptions(options =>
        {
            options.SerializerOptions.PropertyNamingPolicy = null; // 保留原始属性名
            options.SerializerOptions.NullValueHandling = JsonIgnoreCondition.Never; // 不忽略空值
            options.SerializerOptions.IncludeFields = true; // 如需序列化字段(可选)
        });
    })
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

host.Run();

方案3:确保对象属性可访问

确认MyClass的属性为public,并合理处理Nullable初始化:

public class MyClass
{
    public string Name { get; set; } = string.Empty; // 初始化避免Nullable警告
}

方案4:修改host.json配置

在host.json中添加Http扩展的序列化配置:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensions": {
    "http": {
      "json": {
        "serialize": {
          "propertyNamingPolicy": "none",
          "ignoreNullValues": false
        }
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者Rajib Mahata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:16:33