FIX: la memorizzazione nella cache del catalogo non viene usata quando si usa la classe CategoryConfiguration insieme alla proprietà CategoryConfiguration. ChildProducts. SqlWhereClause in Commerce Server 2009

Sintomi

Considerare lo scenario descritto di seguito:

  • È possibile abilitare la memorizzazione nella cache nel sistema di catalogo nel file Web. config di un sito Web che sta usando Microsoft Commerce Server 2009.

  • Puoi usare la classe CategoryConfiguration per specificare la configurazione precaricata di un oggetto Category .

  • Puoi impostare la proprietà LoadChildProducts su true.

  • Devi specificare una clausola Filtering nella proprietà CategoryConfiguration. ChildProducts. SqlWhereClause .

  • Puoi usare il metodo GetCategory o il metodo GetProduct per recuperare le categorie figlio o i prodotti figlio dell'oggetto CategoryConfiguration .

In questo scenario, la memorizzazione nella cache dei cataloghi non può essere usata per recuperare le categorie figlio e i prodotti figlio. Di conseguenza, il sito Web potrebbe avere prestazioni in calo quando il carico è elevato. Ad esempio, si dispone di un sito Web che usa il catalogo di esempio AdventureWorks. Viene eseguito l'esempio di codice seguente per recuperare il nome visualizzato di un oggetto Category . In questo esempio, il codice interroga i dati del database del catalogo ogni volta, anche se è abilitata la memorizzazione nella cache del catalogo.

CategoryConfiguration categoryConfiguration = new CategoryConfiguration();  categoryConfiguration.LoadChildProducts = true;  categoryConfiguration.ChildProducts.SqlWhereClause = "[IsVisible] = 1";  var catalogContext = CommerceContext.Current.CatalogSystem.CatalogContext;  Category category = catalogContext.GetCategory("AdventureWorks Catalog", "SleepingBags");  Response.Write(category.DisplayName);

Nota Lo stesso problema si verifica quando si usa il metodo GetProduct nell'esempio di codice. Microsoft fornisce esempi di programmazione solo per le illustrazioni, senza garanzia espressa o implicita. Ciò include, ma non solo, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione che viene dimostrato e con gli strumenti usati per creare e eseguire il debug delle procedure. Gli ingegneri del supporto tecnico Microsoft possono aiutare a spiegare la funzionalità di una determinata procedura. Tuttavia, questi esempi non verranno modificati per ottenere funzionalità aggiunte o creare procedure per soddisfare i requisiti specifici.

Risoluzione

Per risolvere il problema, applicare questo aggiornamento rapido per il server in cui è in uso Commerce Server 2009. dopo avere applicato questo aggiornamento rapido, la memorizzazione nella cache di prodotti figlio e categorie di bambini è consentita quando si usa un filtro "whereClause". Per impostazione predefinita, tutte le query che contengono una clausola WHERE ignorano la cache dei cataloghi. Per abilitare la memorizzazione nella cache, è necessario aggiungere una sezione "cacheFilter" e configurarla correttamente nel file Web. config per il sito Web di Commerce Server. La sezione "cacheFilter" offre gli attributi seguenti:

  • Attributo "whereClause".

  • Attributo "exactMatch".

Per gestire la clausola WHERE nella cache, è possibile usare una delle opzioni seguenti:

  • Specifica l'intera clausola WHERE nell'attributo "whereClause" e quindi imposta l'attributo "exactMatch" su true.

  • Specifica una clausola WHERE nell'attributo "whereClause" e quindi imposta l'attributo "exactMatch" su false. In questo modo, Commerce Server consente di memorizzare nella cache qualsiasi clausola WHERE che ha una corrispondenza parziale con quella specificata nel file di configurazione.

Nota L'attributo "exactMatch" è facoltativo. Per impostazione predefinita, se si omette l'attributo "exactMatch", viene impostato su true. L'esempio seguente mostra come modificare la sezione di configurazione. Questo esempio mostra anche l'uso dell'attributo "exactMatch".

<catalog><catalogSets .../>      <cache enable="true">        <cacheFilter>          <add whereClause="WHERE [ListPrice] between 0 AND 1000'" />          <add whereClause="isActive" exactMatch="False" />          ...         </cacheFilter>       </cache> </catalog>

Regole per la definizione del valore dell'attributo "whereClause" nella sezione cacheFilterNota il valore dell'attributo "whereClause" nella sezione "cacheFilter" è corrispondente alla stringa. Ad esempio, devono essere seguite le regole seguenti:

  • Solo uno spazio vuoto è consentito tra le parole chiave di valore attributo "whereClause". Ad esempio:

    • whereClause = "ProductID like ' AW2%'" non corrisponde

    • whereClause = "ProductID like ' AW2%'" corrisponde a

  • Nessun spazio vuoto (s) è consentito all'inizio o alla fine del valore dell'attributo "whereClause" se è presente un valore di più parole chiave. Ad esempio:

    • whereClause = "ProductID like ' AW2%'" non corrisponde

    • whereClause = "ProductID like ' AW2%'" non corrisponde

  • Il sottovalore con virgolette singole nell'attributo "whereClause" deve essere completamente abbinato alla stringa. Supponiamo ad esempio che la query di ricerca sia "ProductID like ' AW2%'"; In questo caso

    • whereClause = "ProductID like ' AW2' non è una corrispondenza

    • whereClause = "ProductID like ' AW2%' è una corrispondenza

Altre informazioni su questo hotfix

Informazioni sull'hotfix

È disponibile un hotfix supportato da Microsoft. Tuttavia, questo hotfix è progettato per correggere solo il problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi che stanno riscontrando il problema descritto in questo articolo. Questo hotfix potrebbe ricevere ulteriori test. Pertanto, se il problema non è gravemente influenzato, è consigliabile attendere il successivo aggiornamento software che contiene questo hotfix. Se l'hotfix è disponibile per il download, nella parte superiore dell'articolo della Knowledge base è presente una sezione "download hotfix disponibile". Se questa sezione non viene visualizzata, contattare il servizio clienti e il supporto tecnico Microsoft per ottenere l'hotfix. Nota Se si verificano altri problemi o se è necessaria una risoluzione dei problemi, potrebbe essere necessario creare una richiesta di servizio distinta. I soliti costi di supporto verranno applicati alle domande e ai problemi di supporto aggiuntivi che non sono idonei per questo hotfix specifico. Per un elenco completo dei numeri di telefono e del supporto tecnico Microsoft o per creare una richiesta di servizio separata, visitare il sito Web Microsoft seguente:

http://support.microsoft.com/contactus/?ws=supportNota Il modulo "download hotfix disponibile" Visualizza le lingue per cui è disponibile l'hotfix. Se la lingua non viene visualizzata, è possibile che non sia disponibile un hotfix per tale lingua.

Requisiti

Per applicare questo hotfix, è necessario che il pacchetto di modelli di Commerce Server 2009 o Commerce Server 2009 sia installato in SharePoint 2010.

Informazioni sul riavvio

Non è necessario riavviare il computer dopo aver applicato questo hotfix. Dopo aver applicato questo aggiornamento rapido, è tuttavia necessario riavviare Internet Information Services (IIS). Per riavviare IIS, aprire una finestra del prompt dei comandi, digitare il comando seguente e quindi premere INVIO:

iisreset/restartNota Questa opzione arresta tutti i servizi IIS in uso e li riavvia.

Informazioni sui file

La versione in lingua inglese di questo hotfix presenta gli attributi di file elencati nella tabella seguente (o attributi successivi). Le date e le ore di questi file sono espresse nel formato UTC (Coordinated Universal Time). Quando esaminate le informazioni del file, viene convertito in orario locale. Per trovare la differenza tra UTC e ora locale, usare la scheda fuso orario nell'elemento data e ora nel pannello di controllo.

Per tutte le versioni supportate di Commerce Server 2009

Nome file

Versione file

Dimensione file

Date

Ora

Piattaforma

Cs2009hotfixhelper.exe

6.0.4171.27

13.080

18-Aug-2010

11:11

x86

Microsoft.catalogserver.dll

6.0.4171.27

756.520

18-Aug-2010

11:11

x86

Microsoft.commerceserver.runtime.dll

6.0.4171.27

850.744

18-Aug-2010

11:11

x86

Microsoft.commerceserver.catalog.dll

6.0.4171.27

961.336

18-Aug-2010

11:35

x86

Per tutte le versioni supportate del pacchetto di modelli di Commerce Server 2009 per SharePoint 2010

Nome file

Versione file

Dimensione file

Date

Ora

Piattaforma

Cspatchhelper.exe

6.0.4171.504

17.168

30-Nov-2010

08:16

x86

Microsoft.catalogserver.dll

6.0.4171.504

756.520

30-Nov-2010

08:16

x86

Microsoft.commerceserver.runtime.dll

6.0.4171.504

850.744

30-Nov-2010

08:16

x86

Microsoft.commerceserver.catalog.dll

6.0.4171.504

961.336

29-Nov-2010

14:13

x86

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Ulteriori informazioni

Tenere presente che durante e dopo la disinstallazione dell'hotfix sono presenti i due punti seguenti:

  1. Potrebbe essere visualizzata una finestra di dialogo. La finestra di dialogo avverte che alcune applicazioni devono essere chiuse prima di poter continuare con il processo di disinstallazione. In questa situazione, accettare la selezione predefinita e fare clic sul pulsante OK per continuare.

  2. Dopo la disinstallazione dell'hotfix per Commerce Server 2009, il menu Start può comparire sia Commerce Server 2009 che Commerce Server 2007. In questo caso, è possibile ignorare o eliminare la voce di menu Commerce Server 2007.

Per altre informazioni, visitare i seguenti siti Web Microsoft Developer Network (MSDN):

Metodo GetCategory dellaclasse CategoryConfigurationdell' elemento CatalogPer scaricare il pacchetto di modelli di Commerce Server 2009 per SharePoint 2010, visitare il sito Web Microsoft seguente:

http://www.microsoft.com/download/en/details.aspx?FamilyID=CFD0C459-5A11-4DE6-9085-52D59E8D38E6&displaylang=en

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×