私が開発するWebサービスは、最大6秒で応答する必要があります。 Webサービスが6秒以内に応答できない場合は、ハードコーディングされたデータで応答する必要があります。IIS/Azure IIS - 最大応答時間を制限する
ウェブサービスは、着信データを変換して別のサービスにリクエストするプロキシのようなものです。そのサービスは第三者であり、失敗するか、あまりにも長く応答する可能性があります。
現在、サードパーティのサービスに対するタイムアウトを3秒に制限するアプリケーションコードには制限があります(覚えておいて、合計応答時間は最大6秒です)。
しかし、アプリケーションの負荷が非常に高く、3秒間でコードを実行できないことがあります(アプリケーションコードをロードせずにミリ秒単位で実行するとコードが少しあります)。 私はWindowsがすべてのスレッドを実行することができず、スレッドが3秒以上スリープすることがあり、最大応答時間に違反する可能性がないと考えています。
アプリケーションはasp.netコアでC#で開発され、完全に非同期です。
質問:IISレベルでの応答時間を制限できますか?タイムアウトが発生した場合、事前定義されたデータで応答することは可能ですか?応答性を向上させるためにAzureに余分なインスタンスを追加する以外は方法がありますか?堅牢なタイムアウトを処理するためのプログラム的な方法はありますか?
EDIT
私は高負荷でIIS上の応答時間を保証
- を必要としています。非リアルタイムOSでの使用は可能ですか?
- 要求が時間内に処理されない場合、定義済みのハードコードされた応答を送信します。
- 構成自体についてのAzure
あなたのAzureインスタンスで利用可能なリソースを増やしたり、ロードバランシングでインスタンスを追加する必要があるようです。また、アプリケーションコードのパフォーマンスのボトルネックも探して解決することをお勧めします。 – user1666620