2016-12-13 4 views
0

IIS 8.5よりもASP.NET 4.5 Web APIアプリケーションがあります。IIS上のASP.NETは、一度に1つの非同期要求のみを処理します。

サーバーはAWS EC2です。

私は、受信リクエストURLを記録するActionFilterを持っています。したがって、本質的には、リクエストが初めてアプリケーションに入るときにログに記録されます。

私は同時に2つのリクエストを発行しています(郵便番号を使用しています)、私のActionFilterは私の最初のリクエストが完了していないことがわかります。

これらの要求には、async-awaitパターンのDBクエリが必要です。

私は二回それをやった:異なるパラメータ(それがウェブAPI アプリケーションの)別のURLへ

  • 2の要求(したがって異なる ApiController
  • と同じURLへ

    • 2要求を

      私はIISの「既定の設定」を使用しています。

      1. どうすればこの問題に近づけることができますか?
      2. どのIIS構成設定をチェックする必要がありますか?
      3. ThreadPoolスレッドが複数の同期呼び出しを処理できる必要があるため、私が間違っていてもasync-awaitは関係ありません。

      ありがとう!

    +0

    自分でデバッグして、リクエストがブロックされている場所を特定する必要があります。良いスタートポイントは、すべてのDBアクセスを「await Task.Delay(10000);」で置き換え、同じ問題があるかどうかを確認することです... [MCVE]を思いつくことは、SOの質問が答えるために重要です。時間が1つになる。 –

    +0

    リクエストは同時に送信されていますか?多分、Postmanがリクエストの順序を決めていますか? – Sunshine

    答えて

    0

    問題は、Postman/Chromeが同じドメインへのリクエストをシーケンシングしていることでした。 クライアント側の制限です。

    複数のコンピュータから要求が発行されると、IISは並列に応答しました。

    ありがとうございました!

    関連する問題