UrlAgentの誤った構成を解決する


解説

サイトをウォームアップ状態に保つのを助けるSitecoreのUrlAgentが正しく機能せず、次のようなエラーでkeepalive.aspx ページをリクエストできない場合があります:

ERROR Exception in UrlAgent (url: /sitecore/service/keepalive.aspx) 
Exception: System.Net.WebException 
Message: {ERROR MESSAGE}
Source: System 
   at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) 
   at System.Net.WebClient.DownloadData(Uri address) 
   at System.Net.WebClient.DownloadData(String address) 
   at Sitecore.Web.WebUtil.ExecuteWebPage(String url, NameValueCollection headers) 
   at Sitecore.Tasks.UrlAgent.Run() 

ログ ファイルに出力される例外メッセージに基づいて、適切な解決策を選択してください。

シナリオ1

エラー メッセージ:

/Website/sitecore/service フォルダーへの匿名アクセスが許可されていない場合、次のメッセージが表示されることがあります:

Message: The remote server returned an error: (401) Unauthorized.

解決策:

次の記事で説明されている手順を適用して、/Website/sitecore/service フォルダーへの匿名アクセスを有効にします:
http://technet.microsoft.com/en-us/library/cc731244(v=ws.10).aspx

または、/Website/sitecore/service/keepalive.aspxファイルを別の場所に移動し、web.configのkeep-aliveエージェント構成のurlパラメーターの値を適切に変更します:

<agent type="Sitecore.Tasks.UrlAgent" method="Run" interval="00:15:00">
  <param desc="url">/sitecore/service/keepalive.aspx</param>
<LogActivity>true</LogActivity>
</agent>

シナリオ2

エラー メッセージ:

次のメッセージは、システムがホスト名を解決するためにDNS サーバーに到達できない場合、または指定されたホスト名が正しくない場合に表示されることがあります。

Message: The remote name could not be resolved: 'hostname'

解決策:

シナリオ3

エラー メッセージ:

UrlAgent 構成で指定された/Website/sitecore/service/keepalive.aspx ページがサーバーに存在しない場合、次のメッセージが表示されることがあります。

6.6.0 Update-4より前のSitecore バージョンでは、Sitecore Webサイトがホスト名として「localhost」を使用するリクエストを処理するように構成されていない場合にも、このエラーが発生する可能性があります。

Message: The remote server returned an error: (404) Not Found.

解決策:

/Website/sitecore/service/keepalive.aspx ページが存在することを確認します。存在しない場合、ストックのSitecore インストールからコピーしてください。

6.6.0 Update-4より前のSitecore バージョンを使用している場合、次の既知の問題も参照してください:
KB0714882

 

シナリオ4

エラー メッセージ:

/Website/sitecore/service フォルダーにアクセスするためにSSL 接続が必要な場合、次のメッセージが表示されることがあります:

Message: The remote server returned an error: (403) Forbidden.

解決策:

以下のように、UrlAgent 構成でHTTPS プロトコルを使用して絶対URLを指定します:

<agent type="Sitecore.Tasks.UrlAgent" method="Run" interval="00:15:00">
  <param desc="url">https://<ホスト名>/sitecore/service/keepalive.aspx</param>
  <LogActivity>true</LogActivity>
</agent>