.Net Core 3.1 解决数据大小限制

news/2024/5/19 3:01:29 标签: .netcore

微软官网文档上对.NET Core3.1解决数据大小限制有详细的介绍。下面是根据自己的情况进行的总结,我们可以把.Core项目部署在IIS上,也可以利用Kestrel进行部署。这两种方式处理数据大小限制的方式不一样,具体如下:

一、部署在IIS上的应用配置接收数据的大小限制

1、通过web.config配置

IIS默认请求限制 (maxAllowedContentLength) 为30000000字节,即约 28.6 MB。 可以添加web.config来自定义配置。首先添加一个web.config配置文件,里面添加的内容如下:

<system.webServer>

  <security>

    <requestFiltering>

      <requestLimits maxAllowedContentLength="52428800" />

    </requestFiltering>

  </security>

</system.webServer>

2、使用MaxRequestBodySize配置

通过在StartUp.cs中的设置来增加 HTTP 请求的最大请求正文大小,在下面的示例中,将限制设置为 50 MB (52428800 字节) :

services.Configure<IISServerOptions>(options =>

{

    options.MaxRequestBodySize = 52428800;

});

 

二、 利用Kestrel部署的应用配置接收数据的大小限制

对于 Kestrel 托管的应用,默认的最大请求正文大小为 30,000,000 个字节,约为 28.6 MB。下面是处理数据大小限制的方式:

注意:下面介绍的方式是基于Kestrel服务器上的配置,需要以.net core 的运行程序进行启动时才生效,以iis express 启动仍不生效。另外应用发布后使用nginx或者iis做反向代理服务器,还需要对反向代理服务器进行配置。

1、 使用 MaxRequestBodySize属性自定义限制

MaxRequestBodySize获取或设置任何请求正文的最大允许大小(以字节为单位)。设置为null时,最大请求正文大小是无限的。

public static IHostBuilder CreateHostBuilder(string[] args) =>

    Host.CreateDefaultBuilder(args)

        .ConfigureWebHostDefaults(webBuilder =>

        {

            webBuilder.ConfigureKestrel((context, options) =>

            {

                options.Limits.MaxRequestBodySize = 52428800; // 限制50M,options.Limits.MaxRequestBodySize=null表示不限制
}

) .UseStartup<Startup>();
});

2、使用Multipa rtBodyLengthLimit 属性自定义限制

MultipartBodyLengthLimit 设置每个正文的长度限制。 超出此限制时,会引发 InvalidDataException。 默认值为 134,217,728 (128 MB)。可以在 Startup.ConfigureServices 中设置限制

public void ConfigureServices(IServiceCollection services)

{

    services.Configure<FormOptions>(options =>

    {

        // Set the limit to 2G

        options.MultipartBodyLengthLimit = int.MaxValue;

    });

}

3、使用[DisableRequestSizeLimit]或者[RequestSizeLimit]特性在action上做限制

DisableRequestSizeLimit对大小不做限制,使用如下:

[HttpPost]

[DisableRequestSizeLimit]

public void UploadFont()

{

}

RequestSizeLimit是对大小做自定义设置,使用如下

[HttpPost]

[RequestSizeLimit(52428800)]
public void UploadFont()
{
}


http://www.niftyadmin.cn/n/5155310.html

相关文章

Jwt 工具类

Jwt 工具类 这里主要是记录Jwt 常用的一些工具类&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、Jwt工具类 &#xff08;一&#xff09;、静态工具类 JwtTokenUtil package com.wl.cloud.security.utils;import cn.hutool.core.convert.Convert; import c…

git reset --hard HEAD^为先回退到上一个版本,git push -f是进行强制推送,覆盖远程分支。

git reset --hard HEAD^为先回退到上一个版本&#xff0c;git push -f是进行强制推送&#xff0c;覆盖远程分支。

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

超声波清洗机哪家强?不错超声波清洗机推荐

很多朋友都经常佩戴眼镜吧&#xff01;但是会忽视眼镜清洗的重要性&#xff0c;刚佩戴眼镜的我清洗眼镜的方法就是用纸巾擦拭一下就觉得挺干净的&#xff0c;其实清洗的一点都不干净&#xff0c;只是镜片短暂的清晰了一点&#xff0c;像眼镜支架缝隙中的脏污是没有清洁到位的&a…

浅谈N卡设置、游戏延迟

浅谈N卡设置、游戏延迟

绘制外包框

void GraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { m_svgrenderer->render(painter,m_localRect); #if 0 // 绘制外包框 //QRectF boundingRect m_localRect.boundingRect(); // 获取外包框矩形 painter->…

使用 Visio 绘制立方体

一、自带的立方体 点击&#xff0c;将其拖拽至空白画布中 点击立方体&#xff0c;可以拖拽立方体的边线改变形状&#xff0c;如下&#xff1a; 可以看到&#xff0c;立方体三个面的颜色是不同的&#xff0c;最上方的面颜色浅一些。 如果想要三个面的颜色相同&#xff0c;先点击…

设计师的宝库:5个供应免费素材的设计网站

今天给大家推荐五个设计素材网站&#xff0c;设计师看到就要码住&#xff0c;码住就是灵感。 即时设计 即时设计是一个可在线使用的设计资源网站&#xff0c;在网页中打开「即时设计」的官网&#xff0c;登录账号后即可使用即时设计提供的设计资源。 即时设计 - 可实时协作的…