修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. CSharp
  4. ASP.NET
  5. 正文

如何突破.NET Core 2.2的上传大小限制

2019年10月10日 6019点热度 0人点赞 0条评论

刚开始写后端时,只是上传一些图片,文档之类的文件。最近需要上传视频,尤其是大型视频,动辄上G的文件,我开始也是直接上传,然后前端直接连接错误,然而后端输出没有任何反应,有点懵,初步判断是文件超限,于是上网查询资料,发现文件大小限制在30M左右,自己测试大概在27M多一点,我这里30M的文件上传也失败。。。

修改Startup中ConfigureServices的配置

跑题了,回到正题,习惯性的去stackoverflow寻找答案,看到这样的答案:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

    // 这里是我看到的解决方案,我还将bodyLengthLimit从 int.MaxValue 变成了 long.MaxValue,已达到超大文件的效果。
    services.Configure<FormOptions>(options =>
    {
        options.ValueLengthLimit = int.MaxValue;
        options.MultipartBodyLengthLimit = long.MaxValue;
        options.MultipartHeadersLengthLimit = int.MaxValue;
    });
}

这个答案的标星数很多,而且评论很完美,统一的已解决。。。我满怀期待的重新测试,然后发现50M的文件依然不能上传。

我不清楚是我的配置问题,还是其他问题,有需要的朋友可以自己拿去测试一下,应该是一种解决方案,只不过不适合我。

配置web.config

于是乎,去csdn找答案,很快发现了一个简单配置方法,在项目中添加web.config文件,一种xml格式配置文件,根据说明,他似乎可以放在项目中的任何地方,不过一般我还是习惯还是放在根目录下。

创建完毕后,添加如下内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 1 GB -->
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

这个方案对我是OK的,目前上传小于1G的文件都是可以的,然后我尝试将数字改成4294967296,也就是4G,上传超过2G的文件依然是OK的,这个方案对我很友好。有需要的朋友可以拿去。

题外话

昨天配置了公共服务机,修改了IIS Express的配置,然后当我把上面的web.config文件放到项目中后,服务机可以正常访问192.168.1.7:44342,其他电脑通通都报503。。。郁闷一下。

然后,根据修改IIS Express的思路,我把web.config删了,将里面的内容放在了项目的.vs文件夹中的配置文件里,也就是.vs/config/applicationhost.config文件,找到对应的<system.webServer>节点,把上面的内容添加进去。

重启IIS服务器,管理员启动vs,运行,完美。。。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: .net iis mvc 服务器
最后更新:2019年10月10日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

文章目录
  • 修改Startup中ConfigureServices的配置
  • 配置web.config
  • 题外话
最新 热点 随机
最新 热点 随机
node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消 rgb 颜色小数兼容问题
MySQL升级之路(5.6-8.0) IdentityServer4深入使用(五)-- 数据持久化 我的开源组件 @xpyjs/gantt 100颗星星啦 搭建网络图书管理系统小纪 解决mount cifs时出现"is not a valid block device"的问题 volar 检查 element 表格的 slot-scope 错误

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号