動的プレースホルダーについてこのガイドに従っていますが、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 ) は、元のコードとまったく同じ名前、継承、およびパラメーターを持っています。