2

Azure Web サイトのライフサイクルを知りたい – 具体的には:
1. Azure Web サイトはデプロイ直後に自動的に開始 (global.asax application_start 起動) しますか? それとも、外部刺激 (http 要求) が必要ですか?
2. いつ、どのようにリサイクルされますか?
3. リサイクル後、自動的に起動するか (グローバル application_start 起動)、または外部刺激が必要か。

実際には、起動時に呼び出す予定の小さなバックグラウンド ジョブ (特定の受信 http 要求とのインターフェイスも持つ) が必要です。ワーカー/Web ロールで実行できることはわかっていますが、Azure Web サイトの即時展開が好きです。

PS。Azure Web サイトに予約済みインスタンスを使用する予定です。

ありがとう

4

2 に答える 2

2

いいえ、Windows Azure Web サイトは、展開後に Web サイトを自動的に起動しません。何よりも、サイトが実際に作成されてからコンテンツを挿入するまで、かなりの時間がかかるためです。Azure Web サイトを作成し、そこに MVC 4 アプリをデプロイして、これを確認しました。このアプリには、グローバル アプリケーションの開始時に現在の日時が設定されたグローバル変数があり、デフォルトのコントローラーでは、その日時とサーバー上の現在の日時が出力されます。コードをデプロイしてから数分待ってから、ページを呼び出しました。2 つの時間はほぼ同じでした。これは、アプリケーションがコントローラーの直前に開始されたことを意味します。デプロイ時に何かがアプリケーションをスピンアップさせた場合、これらの時間は、待機した時間だけずれます。

展開後すぐにスピンアップしないため、そうするには外部からの刺激が必要です。

私が信じている予約済みインスタンスであっても、サーバーのビジー状態に応じて、5分から20分までアイドル状態になると、サイトがシャットダウンする可能性があります。これが発生した場合、次のリクエストは、サーバー上に新しい IIS プロセスを作成することによってスピンアップします。これが発生すると、サイトはすぐにスピンアップしませんが、リクエストが来るのを待ちます。もちろん、pingdom や Windows Azure Mobile Services Scheduler などのサービスを使用して、一貫してサイトにリクエストを送信して、それを生かしてください。

あなたはバックグラウンド ジョブについて言及していますが、Web サイトで実際にそれを簡単に実行できるのだろうかと思います。新しいプロセスを使用してこれをスピンアップした場合、それが機能するかどうかはわかりません。同じプロセス内の新しいスレッドでこれを行った場合でも、サイトがこのジョブを取り込んでスピンダウンする可能性があるという同じ問題があります。

バックグラウンドジョブが特定の受信リクエストとやり取りすることについて話しているときの目標が何であるかがわからないので、それについてはあまり言えません。バックグラウンド ジョブがタイマーで実行されるものである場合は、モバイル サービス スケジューラなどを使用して、代わりにコードが反応するようにスケジュールに従ってリクエストを送信できる場合があります。

于 2013-02-24T15:40:22.443 に答える
0

実際には #1 では、AlwaysOn 設定を設定すると、サイトが自動的に開始されます。これにより、アプリケーションへの HTTP トラフィックが基本的にシミュレートされ、ワー​​カー プロセスの稼働とアプリケーションのウォームアップが維持されます。この設定の詳細については、ドキュメント ページを参照してください。

于 2015-07-22T17:53:26.183 に答える