Microsoft KB Archive/937749

= FIX: The Commerce Server cache may not be updated successfully when you try to use the SiteCacheRefresh method in Commerce Server 2007 =

Article ID: 937749

Article Last Modified on 11/15/2007

-

APPLIES TO


 * Microsoft Commerce Server 2007 Developer Edition
 * Microsoft Commerce Server 2007 Enterprise Edition
 * Microsoft Commerce Server 2007 Standard Edition

-



Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows registry



SYMPTOMS
Consider the following scenario. In Microsoft Commerce Server 2007, you try to use the SiteCacheRefresh method to update the Commerce Server cache. Additionally, the Commerce Server application uses Secure Hypertext Transfer Protocol (HTTPS). In this scenario, the Commerce Server cache may not be updated successfully. Additionally, the following event may be logged in the Application log: Event Type: Error

Event Source: Commerce Server Business UI

Event Category: None

Event ID: 101

Date:

Time:

User: N/A

Computer:

Description: System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: Instance validation error: '0' is not a valid value for System.Net.HttpStatusCode.

at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write1_HttpStatusCode(HttpStatusCode v)

at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write3_CacheRefreshFailureInformation(String n, String ns, CacheRefreshFailureInformation o, Boolean isNullable, Boolean needType)

at

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write4_Item(Object o) --- End of inner exception stack trace ---

at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)

at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o)

at Microsoft.CommerceServer.Internal.SerializableExceptionSignature.ReflectProperty(XmlWriter xmlWriter, Object obj, SerializableProperty propertyInfo)

at Microsoft.CommerceServer.Internal.SerializableExceptionSignature.BuildDetailXml(Boolean useCustomErrors, SerializableExceptionInfo exceptionInfo, Exception exceptionToSerialize)

at Microsoft.CommerceServer.Internal.ExceptionSerializer.TrySerializeToSoapException(Boolean useCustomErrors, SerializableExceptionInfo exceptionInfo, Exception exceptionToSerialize, Boolean& shouldLogException)

at Microsoft.CommerceServer.Internal.ExceptionSerializer.TrySerializeToSoapException(SerializableExceptionInfo[] exceptionInfoList, Exception exceptionToSerialize, Boolean& shouldLogException)

at Microsoft.CommerceServer.Marketing.WebService.MarketingWebService.PropagateOrLogExceptionInternal(Exception except)

at Microsoft.CommerceServer.Marketing.WebService.MarketingWebService.PropagateOrLogException(Exception except)

at Microsoft.CommerceServer.Marketing.WebService.MarketingWebService.RefreshCache(String cacheName) --- End of inner exception stack trace --- at Microsoft.CommerceServer.ServiceAgent.TryHandleWebMethodException(Exception ex, SoapHttpClientProtocol serviceProxy)

at Microsoft.CommerceServer.Internal.Marketing.MarketingServiceProxy.AuthorizedInvoke(String methodName, Object[] parameters)

at Microsoft.CommerceServer.Internal.Marketing.MarketingServiceProxy.RefreshCache(String cacheName)

at Microsoft.CommerceServer.Internal.Marketing.AgentMarketingSystemImpl.RefreshCache(String cacheName)

at Microsoft.CommerceServer.Marketing.MarketingServices.DoRefreshCache(String cacheName)

at Microsoft.CommerceServer.Marketing.MarketingContext.RefreshCache(String cacheName)

at Microsoft.CommerceServer.Marketing.MarketingContext.RefreshAllMarketingCaches

at Microsoft.CommerceServer.UI.MarketingManager.PrimaryController.RefreshSiteCache

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.



CAUSE
This problem occurs because the SiteCacheRefresh.axd HTTP handler is generated by using port 80 instead of by using port 443.



Hotfix information
A supported hotfix is now 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 this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next service pack that contains this hotfix.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or 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. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

Prerequisites
There are no prerequisites to apply this hotfix.

Restart requirement
You must restart Internet Information Services (IIS) after you apply this hotfix. To restart IIS, run the following command at a command prompt:

iisreset /restart

Hotfix replacement information
This hotfix does not replace any other software updates.

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.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

Note Commerce Server 2007 always uses Secure Sockets Layer (SSL) to call the SiteCacheRefresh method if the Commerce Server application uses HTTPS.

To make the Commerce Server application use HTTP instead of HTTPS, apply this hotfix. Then, set the value of the AlwaysRefreshURLWithHTTP registry entry to 1. Follow these steps, and then quit Registry Editor:  Click Start, click Run, type regedit, and then click OK. Locate and then click the following key in the registry:

 

 On the Edit menu, point to New, and then click DWORD. Type AlwaysRefreshURLWithHTTP, and then press ENTER. On the Edit menu, click Modify.</li> Type 1, and then click OK.</li></ol>

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Additional query words: SiteCacheRefresh

Keywords: kbpubtypekc kbqfe kbhotfixserver KB937749

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.