我正在使用MVC和WebApi以及Kestrel Web Server测试ASP.NET核心Web应用程序。
var host = new WebHostBuilder()
.UseKestrel(opt => opt.ThreadCount = 10)
.UseConfiguration(config)
.UseContentRoot(path)
.UseStartup<Startup>()
.Build();
由于某种原因,当服务器处理请求时,它不会接受任何新请求。从我所看到的情况来看,情况应该不是这样,但我无法弄清楚我做错了什么。
这是我的WebApi控制器代码:
[HttpPost]
[Route("/api/test/{moduleid}")]
public Task<object> Api(string moduleId, [FromBody] JObject data)
{
return Task.Run( () =>
{
return domain.Handle(moduleId, data);
});
}
代码不是Async所以我在Task.Run调用中包装。一切正常,但服务器阻止新请求,直到当前请求完成。
答案 0 :(得分:1)
Kestrel在设计上是异步的。我使用的客户端一次只能限制一个请求(Postman)。一旦我使用了多个客户端,我看到一切都很顺利。