C1X*_*C1X 3 c# sql-server azure-devops aspnetboilerplate asp.net-core-2.2
我正在使用用 ASP.NET core 2.2 开发的 aspnetboilerplate 解决方案。后端部署在 azure 上,并使用提供的 SQL 服务器。
有时,当后端有很多请求要处理时,它会记录此异常:
错误 2020-11-20 12:28:21,968 [85] Mvc.ExceptionHandling.AbpExceptionFilter - 由于数据到达太慢,读取请求正文超时。请参阅 MinRequestBodyDataRate。Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException:由于数据到达太慢,读取请求正文超时。请参阅 MinRequestBodyDataRate。
我试图解决这个问题,将此代码添加到我的 Program.cs
namespace WorkFlowManager.Web.Host.Startup
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel(options =>
{
options.Limits.MinResponseDataRate = null;
});
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但问题并没有解决。
Mat*_*hew 13
除了接受的答案之外,这也可能是由于请求标头与请求正文不一致所致。
错误请求的两种可能情况是:
Content-Length标头不正确如果Content-Length的值大于请求正文中传递的字节数。
不好的例子:
POST /path HTTP/1.1
Content-Length: 15
Content-Type: text/plain
ABCDEFG
Run Code Online (Sandbox Code Playgroud)
其中请求正文是7字符长,但标头指示它应该是15.
在这种情况下,服务器将等待8传输剩余的字节,这永远不会发生,从而迫使错误发生。
好例子:
POST /path HTTP/1.1
Content-Length: 7
Content-Type: text/plain
ABCDEFG
Run Code Online (Sandbox Code Playgroud)
Transfer-Encoding: chunked消息使用ifTransfer-Encoding: chunked代替Content-Lengthand 但请求者无法发出正文结束序列。
不好的例子:
POST /path HTTP/1.1
Transfer-Encoding: chunked
Content-Type: text/plain
4
ABCD
1
E
2
FG
Run Code Online (Sandbox Code Playgroud)
上面的示例需要另外0跟随两个换行符 ( \r\n\r\n) 来指示请求正文的结束。
好例子:
POST /path HTTP/1.1
Transfer-Encoding: chunked
Content-Type: text/plain
4
ABCD
1
E
2
FG
0
Run Code Online (Sandbox Code Playgroud)
小智 9
您共享的异常表明应用程序在“读取”请求时出现问题。
由于数据到达太慢,读取请求正文超时。请参阅 MinRequestBodyDataRate。
但是您正在尝试设置MinResponseDataRate.
请考虑更新MinRequestBodyDataRate。
而不是将值设置为null,请检查文档并尝试为请求设置有意义的值。
默认值为:
默认的最小速率为 240 字节/秒,有 5 秒的宽限期。
你可以这样改变:
.UseKestrel(options =>
{
options.Limits.MinRequestBodyDataRate =
new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3290 次 |
| 最近记录: |