Belirtiler
Aşağıdaki senaryoyu inceleyin:
-
Microsoft Commerce Server 2009 çalıştıran bir Web sitesi için Web. config dosyasındaki Katalog sisteminde önbelleğe almayı etkinleştirirsiniz.
-
Category yapılandırma sınıfını, bir category nesnesinin önceden yüklenmiş yapılandırmasını belirtmek için kullanırsınız.
-
Loadchildproducts özelliğini trueolarak ayarlarsınız.
-
CategoryConfiguration. ChildProducts. SqlWhereClause özelliğinde bir filtreleme yan tümcesi belirtirsiniz.
-
CategoryConfiguration nesnesinin alt kategorilerini veya alt ürünlerini almak Için GetCategory yöntemini veya getProduct yöntemini kullanırsınız.
Bu senaryoda, Katalog önbelleğe alma, alt kategorileri ve alt ürünleri almak için kullanılamaz. Bu nedenle, yüksek yük olduğunda Web sitesi düşük performansla karşılaşabilir. Örneğin, AdventureWorks örnek kataloğunu kullanan bir Web siteniz vardır. Bir Kategori nesnesinin görünen adını almak için aşağıdaki kod örneğini çalıştırırsınız. Bu örnekte, kod katalog veritabanındaki verileri her seferinde sorgular; böylece Katalog önbelleğe alma etkin olur.
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);
Not Bu sorun, kod örneğinde getProduct yöntemini kullandığınızda da oluşur. Microsoft, yalnızca gösterim için programlama örnekleri sunar, açık veya ima edilen garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk dahil olmak üzere örtülü garantileri içerir. Bu makalede, gösterilen programlama dilini ve yordamları oluşturmak ve hataları ayıklamak için kullanılan araçları kullanmayı bildiğiniz varsayılmaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Bununla birlikte, belirli gereksinimlerinizi karşılayacak ek işlevler veya yordamlar oluşturmak için bu örnekleri değiştirmeyecektir.
Çözüm
Bu sorunu çözmek için, bu düzeltmeyi Commerce Server 2009 çalıştıran sunucuya uygulayın. bu düzeltmeyi uyguladıktan sonra, "whereClause" filtresini kullandığınızda Katalog önbelleğindeki alt ürünlerin ve alt kategorilerin önbelleğe alınmasına izin verilir. Varsayılan olarak, WHERE yan tümcesi içeren tüm sorgular Katalog önbelleğini atlar. Önbelleğe almayı etkinleştirmek için, "cacheFilter" bölümünü eklemeniz ve Commerce Server Web sitesinin Web. config dosyasında doğru şekilde yapılandırmanız gerekir. "CacheFilter" bölümü aşağıdaki öznitelikleri sağlar:
-
"WhereClause" özniteliği.
-
"ExactMatch" özniteliği.
Hangi WHERE yan tümcesinin önbelleğe kaydedileceği, aşağıdaki seçeneklerden birini kullanabilirsiniz:
-
"WhereClause" özniteliğinde WHERE yan tümcesinin tamamını belirtin ve "exactMatch" özniteliğini trueolarak ayarlayın.
-
"WhereClause" özniteliğinde WHERE yan tümcesini belirtin ve "exactMatch" özniteliğini falseolarak ayarlayın. Bu, Commerce Server 'ın, yapılandırma dosyasında belirtilen bir kısmi eşleşme olan where yan tümcesini önbelleğe kullanmasını olanaklı kılar.
Not "ExactMatch" özniteliği isteğe bağlıdır. Varsayılan olarak, "exactMatch" özniteliğini atlarsanız, değer trueolarak ayarlanır. Aşağıdaki örnekte, yapılandırma bölümünü değiştirme gösterilmektedir. Bu örnekte, "exactMatch" özniteliğinin kullanımı da gösterilir.
<catalog><catalogSets .../> <cache enable="true"> <cacheFilter> <add whereClause="WHERE [ListPrice] between 0 AND 1000'" /> <add whereClause="isActive" exactMatch="False" /> ... </cacheFilter> </cache> </catalog>
CacheFilter bölümündeki "whereClause" öznitelik değerini Tanımlamalardaki kurallar, " CacheFilter" bölümündeki "whereClause" özniteliğinin değeri dize ile eşleşir. Örneğin, aşağıdaki kurallar izlenmelidir:
-
"WhereClause" öznitelik değeri anahtar sözcükleri arasında yalnızca bir boşluk vardır. Örneğin:
-
whereClause = "ÜrünNo ' AW2% '" eşleştirilmiyor
-
whereClause = "ProductID% ' AW2
-
-
Birden çok anahtar sözcük değeri varsa "whereClause" öznitelik değerinin başında veya sonunda boşluğa izin verilmemektedir. Örneğin:
-
whereClause = "ÜrünNo ' AW2% '" eşleştirilmiyor
-
whereClause = "ÜrünNo ' AW2% '" eşleştirilmiyor
-
-
"WhereClause" özniteliği içindeki singled-tırnak işareti Örneğin, arama sorgusunun "AW2%" gibi ProductID olduğunu varsayalım; Bu durumda,
-
whereClause = "ÜrünNo ' AW2 ' bir eşleşme değildir
-
whereClause = "ÜrünNo ' AW2% ' bir eşleşmedir
-
Bu düzeltme hakkında daha fazla bilgi
Düzeltme bilgileri
Desteklenen bir düzeltme Microsoft 'tan edinilebilir. Ancak bu düzeltmenin yalnızca bu makalede açıklanan sorunu gidermesi amaçlanmıştır. Bu düzeltmeyi yalnızca bu makalede açıklanan sorunu yaşayan sistemlere uygulayın. Bu düzeltmeye ek sınama da gelebilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsa, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemenizi öneririz. Düzeltme indirilebilir durumdaysa, bu Bilgi Bankası makalesinin en üstünde "Düzeltme indirilebilir" bölümü vardır. Bu bölüm görüntülenmezse, düzeltmeyi edinmek için Microsoft Müşteri Hizmetleri ve destek 'e başvurun. Not Ek sorunlar oluşursa veya sorun giderme işlemleri gerekiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Bu belirli düzeltmeye uygun olmayan ek destek sorularına ve sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve destek telefon numaralarının tam listesi için veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=supportNot "Düzeltme indirilebilir" formunda, düzeltmenin kullanılabilir olduğu diller görüntülenir. Dilinizi görmüyorsanız, bunun nedeni bu dilde bir düzeltme yoktur.
Ön koşullar
Bu düzeltmeyi uygulamak için, Commerce Server 2009 veya SharePoint 2010 için Commerce Server 2009 Template Pack yüklü olmalıdır.
Yeniden başlatma bilgileri
Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez. Ancak, bu düzeltmeyi uyguladıktan sonra Internet Information Services 'ı (IIS) yeniden başlatmanız gerekir. IIS 'yi yeniden başlatmak için, komut Istemi penceresini açın, aşağıdaki komutu yazın ve ENTER tuşuna basın:
IISReset/restartNot Bu seçenek, çalışan tüm IIS hizmetlerini durdurur ve yeniden başlatır.
Dosya bilgileri
Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya öznitelikleri) sahiptir. Bu dosyalarla ilgili tarihler ve saatler Eşgüdümlü Evrensel Saat (UTC) kullanılarak listelenmiştir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ile yerel saat arasındaki farkı bulmak için Denetim Masası'ndaki Tarih ve Saat aracında Saat Dilimi sekmesini kullanın.
Commerce Server 2009 ' ün tüm desteklenen sürümleri için
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
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 |
SharePoint 2010 için Commerce Server 2009 şablon paketinin tüm desteklenen sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
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 |
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Ek Bilgi
Düzeltmenin kaldırılması sırasında ve sonrasında aşağıdaki iki noktadan haberdar olun:
-
Bir iletişim kutusu penceresi görüntülenebilir. İletişim penceresi, ınstalinstallion işlemine devam edebilmeniz için bazı uygulamaların kapatılması gerektiğini uyarır. Bu durumda, devam etmek için varsayılan seçimi kabul edin ve Tamam düğmesine tıklayın.
-
Commerce Server 2009 düzeltmesini kaldırdıktan sonra, Başlat menüsünde hem Commerce Server 2009 hem de Commerce Server 2007 görünebilir. Bu durumda, Commerce Server 2007 menü öğesini yoksayabilir veya silebilirsiniz.
Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
Katalog öğesi CategoryConfiguration sınıfı GetCategory yöntemiSharePoint 2010 için Commerce Server 2009 şablon paketini indirmek için aşağıdaki Microsoft Web sitesini ziyaret edin: