SitecoreのUrlAgentは、サイトをウォームアップ状態に保つのに役立ちますが、デフォルトではこれが正しく機能しない可能性があります。追加の構成を実施しない場合、サイトが一定期間アイドル状態になった後、サイトが自動的にリサイクルされる可能性があります。
デフォルトのIIS構成では、定義された非アクティブ期間(デフォルトでは20分)中にWebサイトによってWebリクエストが処理されなかった場合、ASP.NETがWebサイトのアプリケーション プールをリサイクルします。
Sitecore CMSには、このような条件下でワーカー プロセスが自動的にリサイクルされないように設計されたキープアライブUrlAgentが含まれています。 これにより、サイトをウォームアップ状態に保ち、一定期間非アクティブになった後の最初のリクエストの処理速度を上げることができます。
以下の解決策では、Sitecore CMSを構成して、サイトがウォームアップ状態を維持し、一定期間非アクティブになった後に自動的にリサイクルされないようにする方法について説明します。
UrlAgentを使用して、サイトを存続させます。
<agent type="Sitecore.Tasks.UrlAgent" method="Run" interval="00:01:00">この手順は、Sitecoreログ ファイルで次のエラーが見つかった場合にのみ必要です。 IISを統合モードで実行していて、Sitecore Webサイトがホスト名として「localhost」を使用するリクエストを処理するように構成されていない場合、エラーが発生する可能性があります:
<param desc="url">http://<hostname_here>/sitecore/service/keepalive.aspx</param>
…
</agent>
INFO Scheduling.UrlAgent started. Url:http://127.0.0.1/sitecore/service/keepalive.aspx ERROR Exception in UrlAgent(url: /sitecore/service/keepalive.aspx) Exception: System.Net.WebException Message: The remote server returned an error: (404) NotFound.
Source: System
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadData(Uri address)
at Sitecore.Web.WebUtil.ExecuteWebPage(String url, NameValueCollection headers)
at Sitecore.Tasks.UrlAgent.Run()
※註:別の種類のエラー メッセージの例外が発生した場合は、次の記事を参照ください:
UrlAgentの誤った構成を解決する
<agent type="Sitecore.Tasks.UrlAgent" method="Run" interval="00:15:00">
IISにサイトを自動的にリサイクルさせず、UrlAgentも使用させないようにするには、以下の方法を実施します:
<agent type="Sitecore.Tasks.UrlAgent" method="Run" interval="00:01:00">
<param desc="url">/sitecore/service/keepalive.aspx</param>
<LogActivity>true</LogActivity>
</agent>