2013-05-28 25 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。这些都没有帮助,因为当我调试我的应用程序与该管道中的断点时,它只是没有命中。

更新

我测试了一下我的管道正在通过添加以下代码击:

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