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.
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.
To enable this hotfix, follow these steps:
Click Start, click Run, type regedit, and then click OK.
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.
On the Edit menu, point to New, and then click DWORD Value.
Type BuildCacheRefreshURLWithHostName, and then press ENTER.
On the Edit menu, click Modify.
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.
Exit Registry Editor.
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.
This hotfix reads host header and IP address information from the MSCS_Admin database that synchronizes with the IIS metadata. You can use the
registry entry, the
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: