2017-11-29 18 views
0

私はスタートモードで自分のアプリケーションプールを設定している= AlwaysRunning AlwaysRunning開始されていないサイトが適切に

また、私は私のweb.configファイルに以下を追加した

​​

サイトはほとんどの要求を持って、ハングファイアを通じてサイト自体をリクエストするサイトは別として、リサイクルするたびにサイトを開始したいと考えています。イベントビューアで

私はこのようなエントリを参照してください。大丈夫です

08:09: A worker process with process id of '2564' serving application pool 'FoobarAppPool' has requested a recycle because the worker process reached its allowed processing time limit. 

を。それは私のアプリケーションのシャットダウンのログが初期化されるのと一致します。

しかし、それは、このことにより、数時間ごとに20分続きます。

08:29: A worker process with process id of '3012' serving application pool 'FoobarAppPool' was shutdown due to inactivity. Application Pool timeout configuration was set to 20 minutes. A new worker process will be started when needed. 

をこれは、新しいワーカープロセスが実際に開始されたことを示していると思われます。しかし、私のアプリケーションログには何も表示されず、この時点ではRAM/cpuの使用率は非常に低いです。

その後、数時間後にサイトでram/cpuが再び消費され、ログにアクティビティが表示されます。この「沈黙の」期間は、1時間から6時間のどこでも持続するようです。

ここに何か不足していますか?

Azure VM上のIIS 10、Windows Server 2016上で動作します。

+0

なぜサイトを常に稼働させたいのですか? – mason

+0

@masonサイトには、実行する必要があるいくつかのスケジュールされたタスク(Hangfireを介して)があります。これにより、必要な要求を処理できるようになります。ですから、私は基本的にサイトがリサイクルの後すぐに自分自身を暖かくし、次の予定されたリサイクルまで生き続けることを望みます。 – mortenbock

+1

@mortenbock。ウェブサイトは、特定の時間に実行する必要のあるタスクをスケジュールすることを目的としていません。そのためのWindowsサービスを作成するか、Windowsタスクスケジューラを使用します。 – VDWWD

答えて

0

サイトの書き換えルールに起因する問題であることがわかります。

サイトではhttpsが実行されるため、すべてのhttpトラフィックをhttpsにリダイレクトする書き換えルールがあります。

urlはhttpを介して呼び出されるため、IISはリダイレクトに従わず、301/302ステータスコードを受け入れるため、最初のリクエストをhttpsにリダイレクトしないようにルールを調整する必要があります。