Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблемы

Рассмотрим следующий сценарий.

  • Вы включаете кэширование в системе каталогов в файле Web. config для веб-сайта, на котором работает Microsoft Commerce Server 2009.

  • Для указания предварительно загруженной конфигурации объекта Category используется класс CategoryConfiguration .

  • Для свойства LoadChildProducts задано значение true.

  • Вы указываете предложение Filter в свойстве CategoryConfiguration. ChildProducts. SqlWhereClause .

  • Вы можете получить дочерние категории или дочерние продукты объекта CategoryConfiguration с помощью метода GetObject или метода произведения .

В этом сценарии кэширование каталогов не может использоваться для получения дочерних и дочерних продуктов. Таким образом, при наличии высокой нагрузки на веб-сайте может возникнуть снижение производительности. Например, у вас есть веб-сайт, использующий каталог с примерами AdventureWorks. Вы запускаете следующий пример кода для получения отображаемого имени объекта Category . В этом примере код запрашивает данные из базы данных каталога каждый раз, хотя кэширование каталога включено.

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);

Примечание. Эта проблема возникает при использовании метода методического произведения в примере кода. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, не выполняя либо подразумеваемых. Сюда относится, но не ограничивается подразумеваемым гарантийным обязательством о товаре или пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который вы продемонстрировали, и с инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить особенности конкретных процедур. Однако они не изменяют эти примеры для предоставления дополнительной функциональности или создания процедур, отвечающих вашим конкретным требованиям.

Решение

Чтобы устранить эту проблему, установите это исправление на сервер, на котором работает Commerce Server 2009. После применения этого исправления дочерние продукты и дочерние категории в кэше каталога разрешаются при использовании фильтра "whereClause". По умолчанию любой запрос, содержащий предложение WHERE, обходит кэш каталога. Для включения кэширования необходимо добавить раздел "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" имеет значение match String. Например, должны следовать следующие правила:

  • В ключевых словах значения атрибута "whereClause" можно использовать только один пробел. Пример:

    • whereClause = "ProductID Like" AW2% "" не соответствует

    • whereClause = "ProductID Like" AW2% "" соответствует

  • В начале или конце значения атрибута "whereClause" не допускается пустое пространство, если задано несколько значений ключевых слов. Пример:

    • whereClause = "ProductID Like" AW2% "" не соответствует

    • whereClause = "ProductID Like" AW2% "" не соответствует

  • Подзначение одинарного предложения в атрибуте "whereClause" должно быть полностью сопоставлено строкой. Например, предположим, что поисковый запрос имеет вид ProductID Like "AW2%". в этом случае

    • whereClause = "ProductID Like" AW2 "не является соответствием

    • whereClause = "ProductID Like" AW2% "является соответствием

Дополнительные сведения об этом исправлении

Сведения об исправлении

Доступно исправление от корпорации Майкрософт. Однако это исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только в тех системах, где возникли проблемы, описанные в этой статье. Это исправление может получать дополнительное тестирование. По этой причине корпорация Майкрософт рекомендует во всех случаях, когда проблема не представляет особой важности, дождаться следующего обновления программного обеспечения, содержащего это исправление. Если исправление доступно для загрузки, в верхней части этой статьи базы знаний находится раздел "исправление доступно для загрузки". Если этот раздел не отображается, обратитесь в службу поддержки пользователей Майкрософт, чтобы получить исправление. Примечание. Если возникнут дополнительные проблемы или требуется устранение неполадок, возможно, потребуется создать отдельный запрос на обслуживание. Для дополнительных вопросов и проблем, которые не могут быть неполными для данного исправления, действуют стандартные затраты на поддержку. Чтобы получить полный список номеров телефонов службы поддержки пользователей Майкрософт, а также для создания отдельного запроса на обслуживание, посетите веб-сайт Майкрософт по следующему адресу:

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "исправление доступно для загрузки" отображаются языки, для которых доступно исправление. Если язык не отображается, это значит, что исправление для этого языка недоступно.

Предварительные условия

Чтобы применить это исправление, необходимо установить Commerce Server 2009 или Commerce Server 2009 для SharePoint 2010.

Необходимость перезагрузки

После установки этого исправления перезагружать компьютер не требуется. Однако после применения этого исправления необходимо перезапустить службы IIS. Чтобы перезапустить IIS, откройте окно командной строки, введите указанную ниже команду и нажмите клавишу ВВОД.

iisreset/RestartПримечание. Этот параметр останавливает все запущенные службы IIS и перезапускает их.

Сведения о файлах

Английская версия исправления содержит файлы с атрибутами, указанными в следующей таблице, или более поздние. Даты и время для файлов указаны в формате времени UTC. При просмотре сведений о файлах выполняется перевод соответствующих значений в местное время. Чтобы узнать разницу между временем UTC и местным временем, откройте вкладку Часовой пояс элемента Дата и время панели управления.

Все поддерживаемые версии Commerce Server 2009

Имя файла

Версия файла

Размер

дата

Время

Платформа

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

Для всех поддерживаемых версий Commerce Server 2009 Template Pack для SharePoint 2010

Имя файла

Версия файла

Размер

дата

Время

Платформа

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

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Дополнительная информация

Обратите внимание на следующие моменты во время и после удаления исправления.

  1. Может отобразиться диалоговое окно. В диалоговом окне появляется предупреждение о том, что некоторые приложения необходимо закрыть, прежде чем вы сможете продолжить процесс удаления. В этом случае подтвердите выбор по умолчанию и нажмите кнопку ОК , чтобы продолжить.

  2. После удаления исправления для Commerce Server 2009 в меню "Пуск" может быть включена поддержка Commerce Server 2009 и Commerce Server 2007. В этой ситуации вы можете пропустить или удалить пункт меню Commerce Server 2007.

Дополнительные сведения можно найти на веб-сайте Microsoft Developer Network (MSDN) по следующему адресу:

метод CategoryConfiguration класса элемента CatalogЧтобы загрузить пакет шаблонов Commerce Server 2009 для SharePoint 2010, посетите веб-сайт Майкрософт по следующему адресу:

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×