2013-05-28 3 views
1

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

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

<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. Ничто из того, что помогает, когда я отлаживаю свое приложение с точкой разрыва в этом конвейере, он просто не попадает.

Update

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

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), имеет то же имя, наследование и параметры, что и мой исходный код.

+0

К этому руководству, я полагаю, из кода вы имеете в виду : http://www.techphoria414.com/Blog/2011/August/Dynamic_Placeholder_Keys_Prototype – jammykam

+0

Да, я добавил ссылку, но, по-видимому, этого не сделал. – Jon

+0

Пробовал ли вы это на чистой установке на SC6.6, просто чтобы убедитесь, что это не что-то еще в вашем коде? Это выглядит хорошо для меня, хотя ... – jammykam

ответ

1

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

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

    } 
} 

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

+0

Да, мой конвейер появляется в showconfig.aspx. Я внес изменения, которые вы предложили, но он все еще просто не работает. – Jon

+0

И конфигурация, и код выглядят отлично. Приложение работает в режиме отладки или выпуска? Может быть, попробуйте сделать исключение вместо назначения значения переменной и посмотреть, выполняется ли код? –

+0

Выполняется в режиме отладки. Я добавил исключение, но оно не получается. Код не выполняется. Но почему? – Jon

Смежные вопросы