diff --git a/Infrastructure/WebExtensions/RequestLimitExtension.cs b/Infrastructure/WebExtensions/RequestLimitExtension.cs new file mode 100644 index 0000000..e57ec9d --- /dev/null +++ b/Infrastructure/WebExtensions/RequestLimitExtension.cs @@ -0,0 +1,35 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http.Features; +using Microsoft.AspNetCore.Server.Kestrel.Core; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace ZR.Infrastructure.WebExtensions +{ + public static class RequestLimitExtension + { + /// + /// 请求body大小设置 + /// + /// + /// + public static void AddRequestLimit(this IServiceCollection services, IConfiguration configuration) + { + var sizeM = configuration.GetSection("upload:requestLimitSize").Get(); + services.Configure(x => + { + x.MultipartBodyLengthLimit = sizeM * 1024 * 1024; + x.MemoryBufferThreshold = sizeM * 1024 * 1024; + x.ValueLengthLimit = int.MaxValue; + }); + services.Configure(options => + { + options.Limits.MaxRequestBodySize = sizeM * 1024 * 1024; + }); + services.Configure(options => + { + options.MaxRequestBodySize = sizeM * 1024 * 1024; // 设置最大请求体大小为500MB + }); + } + } +} diff --git a/ZR.Admin.WebApi/Program.cs b/ZR.Admin.WebApi/Program.cs index b0bda3c..5eccb37 100644 --- a/ZR.Admin.WebApi/Program.cs +++ b/ZR.Admin.WebApi/Program.cs @@ -47,6 +47,8 @@ builder.Services.AddSingleton(new AppSettings(builder.Configuration)); builder.Services.AddAppService(); //开启计划任务 builder.Services.AddTaskSchedulers(); +//请求大小限制 +builder.Services.AddRequestLimit(builder.Configuration); //注册REDIS 服务 var openRedis = builder.Configuration["RedisServer:open"]; diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index 2e52bf4..9fd51ca 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -39,12 +39,13 @@ "DemoMode": false, //是否演示模式 "SingleLogin": false, //是否允许多设备/浏览器登录 "workId": 1, //雪花id唯一数字 - "sqlExecutionTime": 5,//Sql执行时间超过多少秒记录日志并警报 + "sqlExecutionTime": 5, //Sql执行时间超过多少秒记录日志并警报 "Upload": { "uploadUrl": "http://localhost:8888", //本地存储资源访问路径 "localSavePath": "", //本地上传默认文件存储目录 wwwroot "maxSize": 15, //上传文件大小限制 15M - "notAllowedExt": [ ".bat", ".exe", ".jar", ".js" ] + "notAllowedExt": [ ".bat", ".exe", ".jar", ".js" ], + "requestLimitSize": 50//请求body大小限制 }, //阿里云存储配置 "ALIYUN_OSS": {