原本在 1.* Web API 的版本上執行正常的程式升級為 2.2時出現 BadHttpRequestException: Reading the request body timed out due to data arriving too slowly
出錯錯誤的程式碼為
StreamReader sr = new StreamReader(Request.Body);
string str = await sr.ReadToEndAsync();
string str = await sr.ReadToEndAsync();
專家找出的問題應該是 tread 的問題,我的環境是在 CentOS 7上,使用 docker佈署 Web API的程式,目前文章上有三種作法
第一種在 Startup.cs ConfigureServices 加上下列程式碼
services.Configure<KestrelServerOptions>(options =>{
options.Limits.MinRequestBodyDataRate = new MinDataRate(1, TimeSpan.FromMinutes(5));
options.Limits.MinResponseDataRate = new MinDataRate(1, TimeSpan.FromMinutes(5));
options.Limits.MaxRequestBodySize = 100000000;
options.Limits.MinResponseDataRate = new MinDataRate(1, TimeSpan.FromMinutes(5));
options.Limits.MaxRequestBodySize = 100000000;
});