Sitecore 6.6 Трубопровод не работает

Я следую этому руководству для динамических заполнителей и не могу запустить конвейер getPlaceholderRenderings.

Я не могу понять, почему этот конвейер не работает:

<getPlaceholderRenderings>
  <processor type="Site.CMS.Specialization.Pipelines.GetDynamicKeyAllowedRenderings, Site.CMS"/>
  <processor type="Sitecore.Pipelines.GetPlaceholderRenderings.GetAllowedRenderings, Sitecore.Kernel"/>
  <processor type="Sitecore.Pipelines.GetPlaceholderRenderings.GetPredefinedRenderings, Sitecore.Kernel"/>
  <processor type="Sitecore.Pipelines.GetPlaceholderRenderings.RemoveNonEditableRenderings, Sitecore.Kernel"/>
  <processor type="Sitecore.Pipelines.GetPlaceholderRenderings.GetPlaceholderRenderingsDialogUrl, Sitecore.Kernel"/>
</getPlaceholderRenderings>

Мой процессор выглядит так:

public class GetDynamicKeyAllowedRenderings : GetAllowedRenderings
{
    public new void Process(GetPlaceholderRenderingsArgs args)
    {
        string placeholderKey = args.PlaceholderKey;

    }
}

На этом этапе я просто проверяю, что он работает. Что это не так.

Я сделал именно то, что говорится в руководстве, но этот конвейер никогда не работает. Я много раз перестраивал, перерабатывал пул приложений и перезапускал IIS. Ничто из этого не помогает, поскольку, когда я отлаживаю свое приложение с точкой останова в этом конвейере, оно просто не срабатывает.

Обновить

Я проверил, что мои конвейеры были повреждены, добавив следующий код:

public class ExceptionThrower : HttpRequestProcessor
{
    public override void Process(HttpRequestArgs args)
    {
        throw new Exception("ExceptionThrower");
    }
}

И эта строка в конфиге:

<httpRequestBegin>
  <processor type="Site.CMS.Specialization.Pipelines.ExceptionThrower, SCW.CMS" />
  <processor type="Sitecore.Pipelines.PreprocessRequest.CheckIgnoreFlag, Sitecore.Kernel"/>
  <processor type="Sitecore.Pipelines.HttpRequest.EnsureServerUrl, Sitecore.Kernel"/>
  .
  .
  .
</httpRequestBegin>

Это получает удар, и я вижу исключение.

Если я добавлю это к getPlaceholderRenderings это не получит удар.

Пример, которым я следовал ( http://www.techphoria414.com/Blog/2011/August/Dynamic_Placeholder_Keys_Prototype), имеет точно такое же имя, наследование и параметры, что и мой исходный код.

1 ответ

Решение

Я думаю, что проблема вызвана наследованием от GetAllowedRenderings класс и new ключевое слово. Старайтесь не наследовать от GetAllowedRenderings и увидеть, что точка останова достигнута:

public class GetDynamicKeyAllowedRenderings
{
    public void Process(GetPlaceholderRenderingsArgs args)
    {
        string placeholderKey = args.PlaceholderKey;

    }
}

Проверьте также, если ShowConfig.aspx страница показывает ваш рендеринг в объединенной конфигурации: http://localhost/sitecore/admin/showconfig.aspx

Другие вопросы по тегам