2013-07-09 8 views
9

Windows Azure WebロールでASP.NETの自動起動をセットアップしました(Windows Server 2012でASP.NET 4.5とIIS 8を使用しています)。私は基本的にはthose instructionsに従った。IISの自動スタートでアイドルタイムアウトを無効にしない

webroleのOnStartメソッドを使用して、アプリケーションプールでstartMode="AlwaysRunning"を、WebサイトでpreloadEnabled="true"と設定しています。

リモートアクセスを使用して、これらの2つのプロパティが正しく設定されていることを確認しました(IISマネージャーとapplicationHost.configファイルをチェックすることによって)。

私はまた、web.configファイルにこれを追加しました:

<applicationInitialization skipManagedModules="true"> 
    <add initializationPage="/" /> 
</applicationInitialization> 

このpageは、自動起動が有効になっているときにアイドルタイムアウトを無効にする必要があり言います。しかし、私は私のログからそれがそうでないことを知ることができます、アプリケーションプールはいくつかの非アクティブ後に再起動されます。私はまた、イベントログにそれを見ることができます(複数回6時間以上は):

「cf9d3284-6454-4bbf-8a8e-efd73df4ed83」アプリケーションプールを提供している「772」のプロセスIDを持つワーカープロセスによるシャットダウンしました不活動に。アプリケーションプールのタイムアウト構成は20分に設定されていました。必要に応じて新しいワーカープロセスが開始されます。

奇妙なことは、ウェブサイトへのリクエストがなくても、これが記録された直後に新しいアプリケーションプールが開始されたようです。したがって、1時間で1回のリクエストが得られない場合、アプリケーションプールはリサイクルされ、3回再起動されます(これはログから確認済みです)。私の設定が間違っているか、何か不足していますか?

答えて

0

http://developers.de/blogs/damir_dobric/archive/2009/10/11/iis-7-5-and-always-running-web-applications.aspx

私はこの問題に多くのことを苦労しています。私はIISで私のサービスを生かし続けることができるすべてをやったが、結局は疲れて、別のアプローチを取らなければならなかった。私はちょうどそれらのアプリのプールを生かしておくためにWindowsサービスを作成しました。あなたが試すことができる1つのアプローチは、IIS設定ファイルに行き、あなたが作った設定がその設定ファイルに反映されていることを確認できることを確認します。 上部のリンクを参照してください。しかし、あなたの設定は、スリープ状態になるように設定しても、アプリケーションプールの再起動時にリセットされます。あなたは何らかのアプローチをしなければならないかもしれません。

6

起動モードを[常に単独]に設定すると、どちらも機能しませんでしたが、アプリケーションプールの[アドバンス]設定で[アイドルタイムアウト]を0に設定しました。

Application pool Advanced Settings

関連する問題