IISとAzureで非常に深刻な問題が発生しています。これがIIS側のものなのか、カスタムコード側のものなのかわからない。
Azureで実行されている2つのWebサイト(サイトAとサイトB)に関与しています。(標準のWebRoles、ASP.NET MVC3)。これらのサイトは両方とも完全に異なって設計されており、互いに関係はありませんが、どちらも同様の状況下で同様の動作を示しています。
サイトAは、セッション状態を有効にして実行されています。セッションはSQLAzureデータベースに保存されます。サイトAへの呼び出しのほとんどは、SQLAzureデータベースを指すASP.NETSQLメンバーシッププロバイダーを介して保護されています
サイトBは、セッション状態も有効にして実行されています。セッションはAzureAppFabricキャッシュに保存されます。サイトBには、AppFabricキャッシュおよびAzureテーブルストレージと通信するhttpハンドラーもあります。
問題は始まりますが、主要なAzureリソース(SQL Azureやキャッシュなど)が非常に遅くなった場合は回復しません。これらのリソースが非常に遅くなり、各要求の処理時間が1分を超えると、Azureのロードバランサーはそれらの接続を終了しますが、Webロール上のIISは、アクティブキューからこれらの要求をクリア/削除しません。
したがって、問題は、SQLAzureまたはAppFabricキャッシュが非常に遅い場合にサイトが応答しないということではありません。大きな問題は、SQLAzureまたはAppFabricCacheが戻ってきて正常に動作し始めたときに、サイトが回復しないことです。リクエストはアクティブリクエストリストにあり、長時間(数時間?)消えることはありません。率直に言って、私たちはそれらのサーバーをできるだけ早く再起動するので、それらがどれくらいの間そこに座っているのかわかりません。Azureリソースには断続的な問題が発生する可能性があり、両方のサイトへのトラフィックが非常に多いため、両方のサイトは、クリアされない要求の重みですぐに停止します。IISキューがいっぱいになり、誰かがアプリプールに入って再起動するまで、サイトは利用できません。