当你在 Visual Studio 中调试时,IIS Express 实际读取的是项目根目录下 .vs 文件夹里的配置文件。这是修改最有效的地方 。
找到文件:打开你的项目根目录,进入
.vs文件夹,然后依次进入{你的项目名称}文件夹下的config文件夹,找到applicationhost.config文件。完整路径示例:
你的项目根目录\.vs\你的项目名称\config\applicationhost.config修改配置:用记事本或 VS Code 打开该文件,搜索
<requestFiltering>标签。如果找不到,就搜索<security>标签。如果存在
<requestFiltering>,将其内容修改如下:
<security> <requestFiltering> <!-- 将值改为 104857600 即代表 100MB,单位是字节 --> <requestLimits maxAllowedContentLength="104857600" /> <!-- 其他原有内容保持不变 --> </requestFiltering> </security>
保存并重启:保存文件,然后完全关闭 Visual Studio 并重新打开项目,再次调试即可生效。
如果不行,可以在项目Program.cs中加入以下代码:
builder.Services.Configure<FormOptions>(options =>
{ options.MultipartBodyLengthLimit = int.MaxValue; //每个多部分主体的长度限制,默认值约为128MB 当前为2G
options.ValueCountLimit = int.MaxValue; //要允许的表单条目数限制,默认为 1024个 当前为2147483647个
options.ValueLengthLimit = int.MaxValue; //单个窗体值的长度限制 大约为 4MB 当前为2G});//为 ASP.NET Core Kestrel Web 服务器配置选项builder.Services.Configure<KestrelServerOptions>(options =>
{ options.Limits.MaxRequestBodySize = int.MaxValue; // 默认大约为 28.6MB 当前为2G});//为 IIS 进程内提供配置builder.Services.Configure<IISServerOptions>(options =>
{ options.MaxRequestBodySize = int.MaxValue; // 默认大约为 28.6MB 当前为2G
});