当ASP.Net核心返回413(请求正文太大)时,如何阻止IIS返回502.3-坏网关?
我有一个ASP.Net核心网站 我已设置了自定义的最大请求大小 要么:当ASP.Net核心返回413(请求正文太大)时,如何阻止IIS返回502.3-坏网关?,asp.net,iis,asp.net-core,iis-express,kestrel-http-server,Asp.net,Iis,Asp.net Core,Iis Express,Kestrel Http Server,我有一个ASP.Net核心网站 我已设置了自定义的最大请求大小 要么: app.Use(async (context, next) => { int limit = 1024; context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = limit; await next.Invoke(); }); 我不知道从
app.Use(async (context, next) =>
{
int limit = 1024;
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = limit;
await next.Invoke();
});
我不知道从身体流中阅读是否有区别。但由于种种原因,我需要将正文逐字保存到Db。所以不管怎样,这都是个问题
我试过:
RequestSizeLimit
并返回413
可以通过IIS正常工作
所以我认为这与Kestral在内部抛出异常时如何传回响应有关
到底发生了什么事?
如何让IIS/Kestral玩得更好?@LexLi你是说我会发现我在那里寻找,还是我应该记录一个问题?
[Route("api/values")]
public class ValuesController : Controller
{
// POST api/values
[HttpPost]
[RequestSizeLimit(1024)]
public IActionResult Post()
{
string echo= "";
try
{
using (StreamReader sr= new StreamReader(Request.Body))
{
echo = sr.ReadToEnd();
}
}
catch (Exception ex)
{
return StatusCode(413);
}
return StatusCode(200, echo);
}
}