อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณเปิดใช้งานการแคชในระบบแค็ตตาล็อกในไฟล์ web.config ของเว็บไซต์ที่ใช้ Microsoft Commerce Server ๒๐๐๙
-
คุณใช้ชั้นเรียนCategoryConfigurationเพื่อระบุการกำหนดค่าที่โหลดไว้ล่วงหน้าของวัตถุประเภท
-
คุณตั้งค่าคุณสมบัติLoadChildProductsเป็นTrue
-
คุณระบุส่วนคำสั่งการกรองในคุณสมบัติCategoryConfiguration. ChildProducts. SqlWhereClause
-
คุณใช้เมธอด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 bypasses แคตตาล็อก เมื่อต้องการเปิดใช้งานการแคชคุณต้องเพิ่มส่วน "cacheFilter" และกำหนดค่าได้อย่างถูกต้องในไฟล์ web.config สำหรับเว็บไซต์ Commerce Server ส่วน "cacheFilter" มีแอตทริบิวต์ต่อไปนี้:
-
แอตทริบิวต์ "whereClause"
-
แอตทริบิวต์ "exactMatch"
คุณสามารถใช้หนึ่งในตัวเลือกต่อไปนี้เพื่อจัดการส่วนคำสั่ง where ที่จะแคช:
-
ระบุส่วนคำสั่ง where ทั้งหมดในแอตทริบิวต์ "whereClause" แล้วตั้งค่าแอตทริบิวต์ "exactMatch" เป็นTrue
-
ระบุส่วนคำสั่ง where ในแอตทริบิวต์ "whereClause" แล้วตั้งค่าแอตทริบิวต์ "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>
กฎในการกำหนดค่าแอตทริบิวต์ "whereClause" ในส่วน cacheFilterหมายเหตุค่าของแอตทริบิวต์ "whereClause" ในส่วน "cacheFilter" เป็นสตริงที่จับคู่ ตัวอย่างเช่นกฎต่อไปนี้ต้องเป็นไปตาม:
-
อนุญาตให้ใช้เพียงหนึ่งช่องทางสีขาวระหว่างคำสำคัญของค่าแอตทริบิวต์ "whereClause" ตัวอย่างเช่น:
-
whereClause = "ProductID เหมือน ' AW2% '" ไม่ตรงกัน
-
whereClause = "ProductID เหมือน ' AW2% '" จะถูกจับคู่
-
-
ไม่อนุญาตให้มีช่องว่างสีขาวที่จุดเริ่มต้นหรือจุดสิ้นสุดของค่าแอตทริบิวต์ "whereClause" ถ้ามีค่าคำสำคัญหลายค่า ตัวอย่างเช่น:
-
whereClause = "ProductID เหมือน ' AW2% '" ไม่ตรงกัน
-
whereClause = "ProductID เหมือน ' AW2% '" ไม่ตรงกัน
-
-
Singled-ค่าย่อยที่ได้รับการเสนอราคาภายในแอตทริบิวต์ "whereClause" ต้องเป็นสตริงที่ตรงกันทั้งหมด ตัวอย่างเช่นสมมติว่าคิวรีการค้นหาคือ "ProductID เหมือน ' AW2% '"; ในกรณีนี้
-
whereClause = "ProductID เหมือน ' AW2 ' ไม่ใช่การจับคู่
-
whereClause = "ProductID เหมือน ' AW2% ' คือรายการที่ตรงกัน
-
ข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมแก้ไขด่วนนี้
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งาน อย่างไรก็ตามโปรแกรมแก้ไขด่วนนี้มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นำโปรแกรมแก้ไขด่วนนี้ไปใช้กับระบบที่พบปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ถ้าคุณไม่ได้รับอย่างจากจากปัญหานี้เราขอแนะนำให้คุณรอการอัปเดตซอฟต์แวร์ถัดไปที่มีโปรแกรมแก้ไขด่วนนี้ ถ้าโปรแกรมแก้ไขด่วนพร้อมใช้งานสำหรับการดาวน์โหลดคุณจะพบส่วน "โปรแกรมแก้ไขด่วนดาวน์โหลดพร้อมใช้งาน" ที่ด้านบนสุดของบทความฐานข้อมูลองค์ความรู้นี้ ถ้าส่วนนี้ไม่ปรากฏขึ้นให้ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน หมายเหตุ ถ้าปัญหาอื่นๆเกิดขึ้นหรือจำเป็นต้องมีการแก้ไขปัญหาชั่วคราวคุณอาจต้องสร้างคำขอบริการแยกต่างหาก ค่าใช้จ่ายในการสนับสนุนปกติจะนำไปใช้กับคำถามเพิ่มเติมและปัญหาที่ไม่มีสิทธิ์การใช้งานโปรแกรมแก้ไขด่วนนี้เฉพาะ สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของฝ่ายบริการลูกค้าของ Microsoft และการสนับสนุนหรือเมื่อต้องการสร้างคำขอบริการแยกต่างหากให้เยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ฟอร์ม "โปรแกรมแก้ไขด่วนดาวน์โหลดพร้อมใช้งาน" จะแสดงภาษาที่มีโปรแกรมแก้ไขด่วนพร้อมใช้งาน ถ้าคุณไม่เห็นภาษาของคุณอาจเป็นเพราะว่าโปรแกรมแก้ไขด่วนไม่พร้อมใช้งานสำหรับภาษานั้น
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้คุณจะต้องมีชุดเทมเพลต Commerce Server ๒๐๐๙หรือ Commerce Server ๒๐๐๙สำหรับการติดตั้ง SharePoint ๒๐๑๐
การรีสตาร์ตข้อมูล
คุณไม่จำเป็นต้องรีสตาร์ทคอมพิวเตอร์หลังจากที่คุณนำโปรแกรมแก้ไขด่วนนี้ไปใช้ อย่างไรก็ตามคุณต้องเริ่มต้นบริการข้อมูลทางอินเทอร์เน็ต (IIS) หลังจากที่คุณนำโปรแกรมแก้ไขด่วนนี้ไปใช้ เมื่อต้องการเริ่มต้น IIS ใหม่ให้เปิดหน้าต่างพร้อมท์คำสั่งให้พิมพ์คำสั่งต่อไปนี้แล้วกด ENTER:
iisreset สวิตช์หมายเหตุ ตัวเลือกนี้จะหยุดบริการ IIS ทั้งหมดที่กำลังทำงานอยู่แล้วเริ่มการทำงานใหม่
ข้อมูลไฟล์
เวอร์ชันภาษาอังกฤษของ hotfix นี้มีแอตทริบิวต์ไฟล์ (หรือแอตทริบิวต์ไฟล์เวอร์ชันที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับไฟล์เหล่านี้จะแสดงในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลไฟล์จะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC และเวลาท้องถิ่นให้ใช้แท็บโซนเวลาในรายการวันที่และเวลาในแผงควบคุม
สำหรับทั้งหมดได้รับการสนับสนุนเวอร์ชันของ Commerce Server ๒๐๐๙
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
Cs2009hotfixhelper.exe |
6.0.4171.27 |
๑๓,๐๘๐ |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.catalogserver.dll |
6.0.4171.27 |
๗๕๖,๕๒๐ |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.commerceserver.runtime.dll |
6.0.4171.27 |
๘๕๐,๗๔๔ |
18-Aug-2010 |
11:11 |
x86 |
Microsoft.commerceserver.catalog.dll |
6.0.4171.27 |
๙๖๑,๓๓๖ |
18-Aug-2010 |
11:35 |
x86 |
สำหรับเวอร์ชันทั้งหมดที่ได้รับการสนับสนุนของชุดเทมเพลต Commerce Server ๒๐๐๙สำหรับ SharePoint ๒๐๑๐
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
Cspatchhelper.exe |
6.0.4171.504 |
๑๗,๑๖๘ |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.catalogserver.dll |
6.0.4171.504 |
๗๕๖,๕๒๐ |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.commerceserver.runtime.dll |
6.0.4171.504 |
๘๕๐,๗๔๔ |
30-Nov-2010 |
08:16 |
x86 |
Microsoft.commerceserver.catalog.dll |
6.0.4171.504 |
๙๖๑,๓๓๖ |
29-Nov-2010 |
14:13 |
x86 |
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
โปรดทราบจุดต่อไปนี้สองจุดระหว่างและหลังจากถอนการติดตั้งโปรแกรมแก้ไขด่วน:
-
หน้าต่างกล่องโต้ตอบอาจแสดงขึ้น หน้าต่างโต้ตอบจะเตือนคุณว่าจำเป็นต้องปิดแอปพลิเคชันบางอย่างก่อนที่คุณจะสามารถดำเนินการขั้นตอนการ uninstallion ต่อได้ ในสถานการณ์นี้ให้ยอมรับการเลือกเริ่มต้นแล้วคลิกปุ่มตกลงเพื่อดำเนินการต่อ
-
หลังจากที่คุณถอนการติดตั้งโปรแกรมแก้ไขด่วนสำหรับ Commerce Server ๒๐๐๙ทั้ง Commerce Server ๒๐๐๙และ Commerce Server ๒๐๐๗อาจปรากฏในเมนูเริ่ม ในสถานการณ์นี้คุณสามารถละเว้นหรือลบรายการเมนู Commerce Server ๒๐๐๗
สำหรับข้อมูลเพิ่มเติมโปรดไปที่เว็บไซต์ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
วิธี GetCategory องค์ประกอบแค็ตตาล็อก CategoryConfigurationเมื่อต้องการดาวน์โหลดชุดเทมเพลต Commerce Server ๒๐๐๙สำหรับ SharePoint ๒๐๑๐โปรดเยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้: