1

MVC、WebApi、およびKestrel Web Serverを使用してASP.NETコアWebアプリケーションをテストしています。非同期要求を処理し、ブロックせずに複数の要求を処理するためのMS Kestrel Web Serverの設定方法

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); 
    }); 
} 

コードが非同期ではありませんので、私はTask.Run呼び出しでラップしています。すべてが機能しますが、サーバーは現在の要求が終了するまで新しい要求をブロックします。

答えて

1

Kestrelはデザインによって非同期です。私は一度に1つのリクエスト(郵便配達員)に限られたクライアントを使用していました。一度私は複数のクライアントを使用して私はすべてがうまくいた見た。

関連する問題