私はサイトで期待どおりに動作するパイプラインプロセッサを持っていますが、CMSに入ると大混乱を引き起こします。
リクエストがCMSに対するものかどうかを判断する適切な方法は何ですか?できれば、URLに「/sitecore/」が含まれているかどうかを確認するよりも少し堅牢なものが必要です。
サイトコンテキストは、これを行うための優れた方法です。標準のSitecore構成ファクトリアプローチを使用して、拡張機能を利用する必要のあるサイト名を入力し、「シェル」を含む他の名前を無視することができます。
「シェル」サイトにいる場合は、正常に終了できます...
if (Sitecore.Context.Site.Name.Equals("shell", StringComparison.InvariantCultureIgnoreCase))
{
// Exit here if we're avoiding the sitecore shell altogether
return;
}
それはあなたのコードを爆破させている状況についてそれが何であるかに依存します。問題のあるモードを回避するためにページモードを確認できます...
if (Sitecore.Context.PageMode.IsPageEditorEditing)
{
// Exit here if we're avoiding someone editing the page.
return;
}