.netcore3.1 遇到一个webapi 上传大文件问题

首先,在kestrel模式调试模式下上传

会报错413,

需要在三个地方添加

1、startup中

这里设置的2g最大值

2、在program中

设置2g大小

3、在对应的upload api方法中

可以设置不限制大小,或者填入大小

这时再启动kestrel调试,上传

会发现,接口已经成功,我上传的100m的文件,完全可以满足。

接下来,将webapi项目打包发布到IIS上

在通过ip访问该iis

再次尝试之前那个100m的文件,会发现

有错误413 Request Entity Too Large

此时,是iis对文件上传还有一层限制,打开iis,选择配置编辑器

可以发现,最大上传值被限制到了30m,于是再后面加两个0,使其达到3g,再去试试

居然还是报错413,但是和上一次不一样了,这次是 413 Payload Too Large ,负载过大

我将asp中

这些也都改了,并没有什么用。但是问题我觉得并不在代码,因为kestrel模式就已经可以上传100m文件了,问题肯定是出在iis上,搜索未果。于是我决定,选择部署在nginx上(最后成功)

部署netcore 部署nginx   上传大文件

我用的环境是ubuntuserver18.04,搭建前需要几项东西

1、netcore3.1 sdk

2、nginx(反向代理)

3、pm2 (守护dotnetcore进程)

下面开始第一步,安装sdk

安装源
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

安装sdk
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1

如果安装完成且成功,输入   dotnet --list-sdks  会显示安装的版本

2、安装nginx

更新

sudo apt-get update

安装

sudo apt-get install nginx

启动

sudo service nginx start

如果安装完成且启动成功,浏览器输入ip会出现

3、安装pm2,用来守护dotnetcore 进程

sudo apt-get update

apt-get install nodejs

apt-get install npm

npm install -g pm2

设置开机启动
pm2 startup

如果安装完成且启动成功  输入pm2

https://www.cnblogs.com/stulzq/p/9775973.html  这是一篇关于pm2的文章,可以详细学习

准备工作完成后,将web项目打包并上传至ubuntu机器上

ubuntu 用 rar x (name)来解压rar

解压后,进入到解压目录,先使用  dotnet Lincms.Web.dll(我的项目名字)    来开启kestrel模式下的项目发现可以通过浏览器访问且上传大文件正常

然后我们用pm2来守护它,先停掉 ctrl+c

运行 sudo pm2 start "dotnet  Lincms.Web.dll" --name cms-maker(自己取名字)

在使用pm2 ls来查看守护的进程

再然后,我们需要把这个进程放在nginx中,做代理

sudo vim /etc/nginx/sites-available/default

修改这个默认配置文件

再再然后,还需要修改nginx的最大上传容量

sudo vim /etc/nginx/nginx.conf

设置最大1g上传

你会发现,成功了!

.netcore 部署时遇到413 Request Entity Too Large 和 413Payload Too Large 的问题的更多相关文章

  1. 使用nginx做反代时遇到413 Request Entity Too Large的解决方法

    在使用nginx做反向代理的时候,被反代的系统在上传文件的时候遇到413 错误 :Request Entity Too Large 原因是nginx限制了上传文件的大小,在nginx中可以配置最大允许 ...

  2. nginx上传文件时 nginx 413 Request Entity Too Large 错误

    产生原因: 上传文件的大小超出了 Nginx 允许的最大值,默认是1M: 解决方法: 修改Nginx的配置文件(一般是:nginx/nginx.conf),在 http{} 段中增大nginx上传文件 ...

  3. 【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法

    问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的 ...

  4. WCF错误:413 Request Entity Too Large 的一个解决方法

    在我们用WCF传输数据的时候,如果启用默认配置,传输的数据量过大,经常会出这个WCF:413 Request Entity Too Large的错误. WCF包含服务端与客户端,所以这个错误可能出现在 ...

  5. HTTP Error: 413 Request Entity Too Large的解决

    昨天在使用PHP的CURL调用另一个项目的API:A时,出现了HTTP Error: 413 Request Entity Too Large的错误.而调用另一个API:B则没有这个错误. A的API ...

  6. 解决RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large问题

    使用SourceTree客户端,向远程仓库推送时:RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request ...

  7. Nginx 出现413 Request Entity Too Large得解决方法

    Nginx 出现413 Request Entity Too Large得解决方法 默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large ...

  8. nginx解决超长请求串(413 request Entity too Large错误解决办法)

    <div class="hide-article-box text-center" style="display: block;"> <a c ...

  9. Nginx解决错误413 Request Entity Too Large

    最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了.当你仔细看报 ...

随机推荐

  1. 自己写的一个HTML的小网页

    上次在上直播课的时候,教员提到了html这种标记语言.自己就在W3school上面学了一点点关于html的一些皮毛,自己动手写了一个小网页,同时自己对CTF这一块比较感兴趣,但是自己还是一个干干净净的 ...

  2. Laravel路由不生效,除了首页全部404解决方案Nginx环境

    原因: 请求根目录/ (http://www.xxx.com/public/),会请求public/index.php 输入其他路由地址时,会把你的请求定位到:http://www.xxx.com/i ...

  3. linux常用命令--文件和目录

    cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目 ...

  4. Mysql使用终端操作数据库

      使用终端操作数据库       1.如何查看有什么数据库?     show databases;        2.如何选择数据库?    use databasesName;       3. ...

  5. javascript实例教程使用canvas技术模仿echarts柱状图

    canvas 画布是HTML5中新增的标签,可以通过js操作 canvas 绘图 API在网页中绘制图像. 百度开发了一个开源的可视化图表库ECharts,功能非常强大,可以实现折线图.柱状图.散点图 ...

  6. BUUOJ Misc刷题大作战

    你竟然赶我走 随便一个txt文件都可以拿 LSB 当然还有别的,根据里面左右左右变化,在0管道有变化,然后把下面的三个0打钩,导出png,一个二维码,扫出来 乌镇峰会种图 只要会用winhex打开文件 ...

  7. Netty入门与实战教程总结分享

    前言:都说Netty是Java程序员必须要掌握的一项技能,带着不止要知其然还要知其所以然的目的,在慕课上找了一个学习Netty源码的教程,看了几章后着实有点懵逼.虽然用过Netty,并且在自己的个人网 ...

  8. HBase可用性分析与高可用实践

    HBase作为一个分布式存储的数据库,它是如何保证可用性的呢?对于分布式系统的CAP问题,它是如何权衡的呢? 最重要的是,我们在生产实践中,又应该如何保证HBase服务的高可用呢? 下面我们来仔细分析 ...

  9. Java 动态编译--DynamicCompiler

    java 动态编译自己写过程的机会比较少,记录一下: package com.xzlf.dynamicCompile; import java.io.IOException; import java. ...

  10. Java 添加、隐藏/显示、删除PDF图层

    本文介绍操作PDF图层的方法.可分为添加图层(包括添加线条.形状.字符串.图片等图层).隐藏或显示图层.删除图层等.具体可参考如下Java代码示例. 工具:Free Spire.PDF for Jav ...