做网站要多少的服务器,小外包公司,wordpress 自己写的网页,外包公司会抽取多少工资微软官网文档上对.NET Core3.1解决数据大小限制有详细的介绍。下面是根据自己的情况进行的总结#xff0c;我们可以把.Core项目部署在IIS上#xff0c;也可以利用Kestrel进行部署。这两种方式处理数据大小限制的方式不一样#xff0c;具体如下#xff1a;
一、部署在IIS上…微软官网文档上对.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 maxAllowedContentLength52428800 / /requestFiltering /security
/system.webServer
2、使用MaxRequestBodySize配置
通过在StartUp.cs中的设置来增加 HTTP 请求的最大请求正文大小在下面的示例中将限制设置为 50 MB (52428800 字节)
services.ConfigureIISServerOptions(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; // 限制50Moptions.Limits.MaxRequestBodySizenull表示不限制}
) .UseStartupStartup(); });
2、使用Multipa rtBodyLengthLimit 属性自定义限制
MultipartBodyLengthLimit 设置每个正文的长度限制。 超出此限制时会引发 InvalidDataException。 默认值为 134,217,728 (128 MB)。可以在 Startup.ConfigureServices 中设置限制
public void ConfigureServices(IServiceCollection services)
{ services.ConfigureFormOptions(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() { }