徵狀
請試想下列案例:
-
您可以在執行 Microsoft Commerce Server 2009 之網站的 web.config 檔案中,為目錄系統啟用快取。
-
您可以使用CategoryConfiguration類別來指定類別物件的預先載入的配置。
-
您將LoadChildProducts屬性設為True。
-
您可以在CategoryConfiguration ChildProducts屬性中指定篩選子句。
-
您可以使用GetCategory方法或GetProduct方法來檢索CategoryConfiguration物件的子類別或子產品。
在這種情況下,可能無法使用目錄緩衝來檢索子類別和子產品。 因此,當負載較高時,網站可能會遇到效能降低的效能。例如,您有一個使用 AdventureWorks 範例目錄的網站。 您執行下列程式碼範例,以取得類別物件的顯示名稱。 在這個範例中,程式碼會在每次都從目錄資料庫查詢資料,不過已啟用目錄緩存。
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);
注意: 當您在程式碼範例中使用GetProduct方法時,就會發生這個問題。Microsoft 只提供圖例的程式設計範例,不含任何明示或默示的保證。 這包括但不限於針對特定用途的適售性或適用性的默示擔保。 本文假設您熟悉所示範的程式設計語言,以及用來建立及偵錯工具的工具。 Microsoft 支援工程師可以協助說明特定程式的功能。 不過,它們不會修改這些範例來提供額外的功能或構造程式,以符合您的特定需求。
解決方案
若要解決此問題,請將此熱修復程式套用到執行 Commerce Server 2009 的伺服器。套用此熱修復程式後,當您使用「whereClause」篩選時,就可以在目錄快取中緩存子產品和子類別。 根據預設,包含 where 子句的任何查詢都會略過目錄快取。 若要啟用快取,您必須新增「cacheFilter」區段,並在 Commerce Server 網站的 web.config 檔案中正確設定。"CacheFilter" 區段提供下列屬性:
-
"WhereClause" 屬性。
-
"ExactMatch" 屬性。
您可以使用下列其中一個選項來管理要快取的 where 子句:
-
在 "whereClause" 屬性中指定整個 where 子句,然後將 "exactMatch" 屬性設定為True。
-
在 "whereClause" 屬性中指定 where 子句,然後將 "exactMatch" 屬性設定為False。 這可讓 Commerce Server 將與部分相符的任何 where 子句快取到在設定檔中指定的內容。
注意: "ExactMatch" 屬性是選擇性的。 根據預設,如果您省略 "exactMatch" 屬性,則會將它設定為True。下列範例顯示如何修改配置節。 這個範例也會顯示「exactMatch」屬性的用法。
<catalog><catalogSets .../> <cache enable="true"> <cacheFilter> <add whereClause="WHERE [ListPrice] between 0 AND 1000'" /> <add whereClause="isActive" exactMatch="False" /> ... </cacheFilter> </cache> </catalog>
在 cacheFilter 區段中定義「whereClause」屬性值的規則請注意,"cacheFilter" 區段中 "whereClause" 屬性的值是符合字串的。 例如,必須遵循下列規則:
-
在 "whereClause" 屬性值關鍵字中只允許一個空格。 例如:
-
whereClause = "ProductID like" AW2% "" 不符合
-
whereClause = "ProductID like" AW2% "" 與您相符
-
-
如果有多個關鍵字值,則「whereClause」屬性值的開頭或結尾不允許有任何空格。 例如:
-
whereClause = "ProductID like" AW2% "" 不符合
-
whereClause = "ProductID like" AW2% "" 不符合
-
-
在「whereClause」屬性內,單一加上引號的子值必須完全符合字串。 例如,假設搜尋查詢是 "ProductID 為" AW2% "",在此情況下,
-
whereClause = "ProductID like" AW2 "不符合
-
whereClause = "ProductID like" AW2% "是一個相符專案
-
此熱修復程式的詳細資訊
修復程式資訊
Microsoft 提供了支援的修補程式。 不過,此修正程式僅適用于本文所述的問題。 僅將此熱修復程式套用至本文所述問題的系統。 此熱修復程式可能會收到其他測試。 因此,如果這個問題不會對您造成嚴重影響,我們建議您等待包含此熱修復程式的下一個軟體更新。如果有可供下載的熱修復程式,請參閱這篇知識庫文章頂端的「提供修補程式下載」一節。 如果此區段未出現,請與 Microsoft 客戶服務和支援聯繫,以取得此熱修復程式。 注意: 如果發生其他問題,或需要進行任何疑難排解,您可能必須建立個別的服務要求。 一般支援費用適用于不符合此特定熱修復程式的其他支援問題與問題。 如需 Microsoft Customer Service 和支援電話號碼的完整清單,或是要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support注意: [可使用的修補程式下載] 表單會顯示可供修復程式使用的語言。 如果您沒有看到您的語言,這是因為該語言沒有可用的修補程式。
先決條件
若要套用此熱修復程式,您必須已安裝適用于 SharePoint 2010 的 Commerce Server 2009 或 Commerce Server 2009 範本套件。
重新啟動資訊
在套用此熱修復程式後,您不需要重新開機電腦。 不過,在您套用此熱修復程式後,您必須重新開機網際網路資訊服務(IIS)。 若要重新開機 IIS,請開啟命令提示字元視窗,輸入下列命令,然後按 ENTER:
iisreset/restart注意: 這個選項會停止執行中的所有 IIS 服務,然後重新開機它們。
檔案資訊
此熱修復程式的英文版具有下表所列的檔案屬性(或更新的檔案屬性)。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。
所有受支援的 Commerce Server 2009 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Cs2009hotfixhelper.exe |
6.0.4171.27 |
13080 |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.catalogserver.dll |
6.0.4171.27 |
756520 |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.commerceserver.runtime.dll |
6.0.4171.27 |
850744 |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.commerceserver.catalog.dll |
6.0.4171.27 |
961,336 |
18-Aug-2010 |
11:35 |
x86 |
適用于 SharePoint 2010 的所有受支援版本的 Commerce Server 2009 範本套件
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Cspatchhelper.exe |
6.0.4171.504 |
17168 |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.catalogserver.dll |
6.0.4171.504 |
756520 |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.commerceserver.runtime.dll |
6.0.4171.504 |
850744 |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.commerceserver.catalog.dll |
6.0.4171.504 |
961,336 |
29-Nov-2010 |
14:13 |
x86 |
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
在卸載此熱修復程式期間和之後,請注意下列兩個點:
-
對話方塊視窗可能會顯示。 對話方塊視窗會警告您必須關閉某些應用程式,才能繼續進行 uninstallion 處理常式。 在這種情況下,接受預設的選取範圍,然後按一下[確定]按鈕繼續。
-
在您卸載 Commerce Server 2009 的修復程式後,Commerce Server 2009 和 Commerce Server 2007 可能會出現在 [開始] 功能表中。 在這種情況下,您可以忽略或刪除 Commerce Server 2007 功能表項目。
如需詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站:
Catalog 元素 CategoryConfiguration Class GetCategory 方法若要下載適用于 SharePoint 2010 的 Commerce Server 2009 範本套件,請造訪下列 Microsoft 網站: