日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core中如何调整HTTP请求大小的几种方式

發(fā)布時(shí)間:2023/12/4 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core中如何调整HTTP请求大小的几种方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

一般的情況下,我們都無需調(diào)用HTTP請(qǐng)求的大小,只有在上傳一些大文件,或者使用HTTP協(xié)議寫入較大的值時(shí)(如調(diào)用WebService)才可能會(huì)調(diào)用HTTP最大請(qǐng)求值。

在ASP.NET Core 2.0中,它的兩個(gè)宿主服務(wù)器Kestrel和HttpSys默認(rèn)的HTTP最大請(qǐng)求大小為30MB (~28.6 MiB)。

如果當(dāng)HTTP請(qǐng)求值大于這個(gè)默認(rèn)配置時(shí),在執(zhí)行Request.Body.ReadAsync方法時(shí),就會(huì)引發(fā)IOException異常。如果這個(gè)異常未被捕獲,在Kestrel服務(wù)器中輸出HTTP狀態(tài)碼413(Request Entity Too Large), 而在HttpSys?中的HTTP狀態(tài)碼將是500(Internal Server Error)。


二、解決方案

在ASP.NET Core中這個(gè)配置可以基于全局和每次請(qǐng)求進(jìn)行配置。

1.MVC的解決方案

MVC Core中為我們提供了兩種特性配置請(qǐng)求大小:

RequestSizeLimit?Attribute,對(duì)每個(gè)Action的請(qǐng)求大小進(jìn)行配置。如下調(diào)整MyAction的請(qǐng)求大小值為100,000,000 字節(jié).

[HttpPost] [RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data){ }

DisableRequestSizeLimit?Attribute可以同時(shí)應(yīng)用到ControllerAction上,以禁用對(duì)HTTP請(qǐng)求的大小限制,也是說設(shè)置為無限制。

[HttpPost] [DisableRequestSizeLimit]
public IActionResult MyAction([FromBody] MyViewModel data){ }

2.請(qǐng)求上下文的解決方案

這個(gè)方案是一個(gè)全局配置方案,會(huì)影響到每個(gè)請(qǐng)求,當(dāng)然也可以通過一些靈活的配置對(duì)單個(gè)請(qǐng)求進(jìn)行修改,它通過IHttpMaxRequestBodySizeFeature?特征進(jìn)行配置。如下在HttpContext中取得,當(dāng)然也可以在ApplicationServices的IOC中獲取。

HttpContext.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000;

IHttpMaxRequestBodySizeFeature特征的MaxRequestBodySize屬性是Nullable< long >類型,當(dāng)設(shè)置為null時(shí),類擬于MVC中的[DisableRequestSizeLimit]]。IsReadOnly屬性說明此時(shí)上下文中的請(qǐng)求大小是否可以修改。

3.全局配置解決方案

通過兩個(gè)宿主服務(wù)器Kestrel和HttpSys配置對(duì)請(qǐng)求大小進(jìn)行修改,規(guī)則與前兩種方案相同。

.UseKestrel(options => {options.Limits.MaxRequestBodySize = null; } .UseHttpSys(options => {options.MaxRequestBodySize = 100_000_000; }

推廣

GitHub:https://github.com/maxzhang1985/YOYOFx?如果覺還可以請(qǐng)Star下, 歡迎一起交流。

.NET Core 開源學(xué)習(xí)群:214741894

原文地址:http://www.cnblogs.com/maxzhang1985/p/7607776.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的ASP.NET Core中如何调整HTTP请求大小的几种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。