FIX: The cache is not updated when you use the SiteCacheRefresh method if you specify host headers for a Commerce Server 2007 application that is hosted by a Web farm


Consider the following scenario:
  • You specify a host header for a Microsoft Commerce Server 2007 application.
  • You have multiple servers for a Web farm that is hosting the application.
  • You update the site cache that has the host headers. To do this, you use the SiteCacheRefresh method through the management tools or through the Staging Projects.

In this scenario, you notice that the Microsoft Commerce Server 2007 cache is not updated successfully.


This issue occurs because of an issue in Microsoft.commerceserver.shared.dll. When you use the SiteCacheRefresh method, Commerce Server 2007 builds a URL. This URL is based on a value in the MSCS_Admin database. If the host header is configured for multiple servers as it is in the Web farm scenario, the URL is inaccurate. Therefore, the Commerce Server cache may not be updated successfully.


A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.


You must have Commerce Server 2007 Service Pack 2 (SP2) installed to apply this hotfix.

Restart requirement

You must restart Internet Information Services (IIS) after you apply this hotfix. To restart IIS, open a command prompt, type iisreset /restart, and then press ENTER.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

Registry information

To enable this hotfix, follow these steps:
  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate and then click the following subkey in the registry:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Commerce Server 2007\CacheRefreshMode
    For 64-bit operating systems, locate and then click the following registry subkey:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Commerce Server 2007\CacheRefreshMode
    Note If the CacheRefreshMode registry subkey does not exist, you have to create it.
  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type BuildCacheRefreshURLWithHostName, and then press ENTER.
  5. On the Edit menu, click Modify.
  6. Click Decimal, type 3 in the Value data box for hostheader mode or type 2 for IP mode, and then click OK.

    Note For more information, see the "More Information sectin." section.
  7. Exit Registry Editor.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the
Time Zone
tab in the
Date and Time
item in Control Panel.
File nameFile versionFile sizeDateTimePlatform

More Information

This hotfix reads host header and IP address information from the MSCS_Admin database that synchronizes with the IIS metadata. You can use the AlwaysRefreshURLWithHTTP registry entry, the BuildCacheRefreshURLWithHostName registry entry, and the Enable HTTPS check box in Commerce Server manager to control which mode to refresh the cache and which method is used to build the correct cache refresh URL.

If AlwaysRefreshURLWithHTTP=0 and the Enable HTTPS check box is clear or if AlwaysRefreshURLWithHTTP=1, sitecacherefresh uses HTTP mode.

In HTTP mode, with BuildCacheRefreshURLWithHostName set to different value, the URL is built in varying ways as follows:
  • 0 (Machine Name): http:// s_WebServerMachine:s_IPPort
  • 1 or other (Host Name): http://s_NonSecureHostName
  • 2 (IP Address): http:// firstNonSecureBinding_IP:firstNonSecureBinding_Port (firstBinding = the part before the first “$$” of each s_ServerBindings[i])
  • 3 (Host Header): http:// firstNonSecureBinding_HostHeader:firstNonSecureBinding_Port (firstBinding = the part before the first “$$” of each s_ServerBindings[i])
If AlwaysRefreshURLWithHTTP=0 and the Enable HTTPS check box is selected, sitecacherefresh uses HTTPS mode.

In HTTPS mode, with BuildCacheRefreshURLWithHostName set to different value, the URL is built in varying ways as follows:
  • 0 (Machine Name): https:// s_WebServerMachine:s_SecureIPPort
  • 1 or other (Host Name): https://s_SecureHostName
  • 2 (IP Address): https:// firstSecureBinding_IP:firstSecureBinding_Port (firstSecureBinding = the part before the first “$$” of each s_SecureBinding[i])
  • 3 (Host Header): not applicable

Article ID: 958771 - Last Review: May 11, 2009 - Revision: 1