Azure Isolated模式HttpTrigger请求体大小限制问题求助
解决Azure Isolated模式ASP.NET Core函数大文件上传限制问题
在Isolated模式下,Azure Functions的请求体限制由两层控制:Azure Functions宿主的100MB上限,以及ASP.NET Core管道默认的30MB限制。你之前尝试的FUNCTIONS_REQUEST_BODY_SIZE_LIMIT环境变量和[RequestSizeLimit]特性对Isolated模式不生效——因为该模式下请求处理由独立的ASP.NET Core应用管道负责,必须通过ConfigureFunctionsWebApplication扩展配置ASP.NET Core的相关参数才能解决问题。
具体配置步骤
在Program.cs中,通过ConfigureFunctionsWebApplication的回调配置ASP.NET Core的请求大小限制:
var host = new HostBuilder() .ConfigureFunctionsWebApplication(builder => { // 针对多部分表单上传(文件上传场景)设置大小限制 builder.Services.Configure<Microsoft.AspNetCore.Http.Features.FormOptions>(options => { options.MultipartBodyLengthLimit = 104857600; // 100MB,不超过Azure Functions宿主上限 }); // 全局设置所有请求的体大小限制 builder.UseMiddleware<Microsoft.AspNetCore.Builder.RequestSizeLimitMiddleware>(104857600); }) .Build(); host.Run();
关键说明
- Isolated模式下,
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT仅作用于Azure Functions宿主网关层,但ASP.NET Core管道会先触发自身的30MB限制,因此必须显式配置ASP.NET Core的相关选项。 - 设置的大小不能超过Azure Functions的100MB上限,否则会触发宿主层面的限制。
[RequestSizeLimit]特性仅对In-process模式有效,Isolated模式下无需使用。
内容的提问来源于stack exchange,提问作者James Baldwinson
相关产品推荐
相关产品推荐

