Debian服务器nopCommerce(ASP.NET)上传文件超限,找不到web.config求助
解决nopCommerce自托管大文件上传超限问题
为什么找不到web.config?
nopCommerce基于ASP.NET Core开发,自托管部署模式下不存在传统ASP.NET Framework的web.config文件,相关配置需通过appsettings.json或启动代码(Program.cs)调整,这是ASP.NET Core与旧版框架的核心差异之一。
具体修复步骤
1. 调整应用级文件大小配置
在nopCommerce根目录找到appsettings.json,添加或修改AppSettings节点下的文件大小限制:
"AppSettings": { "MaxFileSize": 52428800, // 示例为50MB,单位是字节,可按需换算调整 "AllowedFileExtensions": ".jpg,.jpeg,.png,.gif,.bmp,.pdf,.doc,.docx,.xls,.xlsx,.txt,.zip,.rar" }
若文件中已有
AppSettings节点,直接补充或覆盖MaxFileSize值即可。
2. 配置ASP.NET Core请求大小限制
若仅修改应用配置仍无效,需在Program.cs中添加请求体大小限制:
找到builder.Services.AddControllersWithViews()代码块,插入以下配置:
builder.Services.Configure<Microsoft.AspNetCore.Http.Features.FormOptions>(options => { options.MultipartBodyLengthLimit = 52428800; // 与MaxFileSize保持一致,示例为50MB options.ValueLengthLimit = int.MaxValue; });
随后在app.UseStaticFiles()之后添加中间件生效代码:
app.UseMiddleware<Microsoft.AspNetCore.Http.Features.FormOptions>();
3. 重启服务使配置生效
修改完成后,重启nopCommerce自托管服务:
# 假设服务名称为nopCommerce,根据实际名称调整 sudo systemctl restart nopCommerce
额外检查项
- 确认nopCommerce进程对上传目录拥有写入权限,避免因权限问题导致上传失败
- 若使用Nginx等反向代理,需同步调整代理的请求大小限制:
server { ... client_max_body_size 50M; # 与之前设置的文件大小匹配 ... }
修改后重启Nginx:
sudo systemctl restart nginx
内容的提问来源于stack exchange,提问作者Marley M
相关产品推荐
相关产品推荐

