4

Windows Azure でホストされている MVC3 アプリケーションを使用しています。Application_Start では、アプリケーションが読み込まれる前に実行する必要があるすべてのブートストラッパーを呼び出し、うまく機能しています。実行されるブートストラッパーの 1 つは、いくつかの Web サービス API を起動して、一連のデータをプリロードおよびキャッシュします。このプロセスには 10 ~ 15 秒かかる場合がありますが、これは Application_Start にあり、自分でサイトをデプロイしてアクセスした後に 1 回だけヒットするため問題ありません。

サイトはまだ立ち上げられていませんが、展開して少しクリックすると、すべてがうまくいき、非常に速くなることがわかりました。その後、サイトを 45 分ほどそのままにしてから、サイトに戻ると、ページをロードするときの長い遅延。ロギングを通じて、Application_Start が起動されていることがわかりました。サイトが再起動してすべてのブートストラッパーを実行するのを待つ必要があります。

私の質問は、非アクティブな場合に Azure WebRole が "スリープ状態になる" のは正常ですか? もしそうなら、その時にサイトにアクセスする幸運なユーザーが長い待ち時間と悪い経験をしないように、どうすればそれを止めることができますか.

4

1 に答える 1

6

デフォルトでは、IIS はアイドル状態のアプリケーションをアンロードする前に 20 分のタイムアウトを設定しています。スタートアップ タスクを使用してこのタイムアウトを無効にすることを検討してください: http://blog.smarx.com/posts/controlling-application-pool-idle-timeouts-in-windows-azure

于 2011-07-22T16:21:32.947 に答える