SCCHのトラブルシューティング
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Sitecore Connect for Content Hub (SCCH) コネクタで発生する可能性のある問題を解決する方法について説明します。
一般的なトラブルシューティングのヘルプ
一般的なエラーや問題の解決策を見つけるために、次の操作を実行できます。
-
Sitecore Content Hubのログで、作成したトリガーを確認します。トリガーを起動するイベントをトリガーし、次のようにログを確認します。
-
メニュー リボンで、Manageをクリックします。
-
「 Actions」をクリックします。
-
Auditingタブをクリックします。
-
-
Azure Service Busに投稿されたメッセージを確認します。
-
Sitecoreログ ファイルを確認し、CMPまたはDAM関連のエラーがないかスキャンします。
NullReferenceExceptionがCDサーバー上のGetLabelsメソッドで発生する
Content Delivery (CD) サーバー上のContent HubのSitecore Connectを構成するために使用されるWebデータベース パッチには、削除する必要があるrole:requiredパラメーターが含まれています。
この問題を解決するには、次の構成変更を行います。
-
Content Delivery (CD) インスタンスで、\App_Config\Modules\Sitecore.Connector.ContentHub.DAM\Sitecore.Connector.ContentHub.DAM.configファイル (デフォルトのファイルパス) を開きます。
-
設定ファイルで、次のノードを見つけます。
RequestResponse<database id="web" type="Sitecore.Data.DefaultDatabase, Sitecore.Kernel" role:require="!ContentDelivery">
-
次のroleパラメータをdatabase idノードから削除します。
RequestResponserole:require="!ContentDelivery"
-
変更を保存します。
-
CDサーバーを再起動します。
Azureで、Sitecore DAMリンクを参照すると404エラーが表示されます
Sitecore DAM画像フィールドタイプのリンクを参照すると、404 not foundエラーが表示されます。
この問題を解決するには、次の手順を実行します。
-
Sitecore LaunchpadでDesktopをクリックし、MasterデータベースからCoreデータベースに切り替えます。
-
コンテンツ エディターで、sitecore/system/Field types/Simple types/Imageに移動します。
-
ContentタブのDataセクションで、Controlフィールドをクリアします。アイテムを保存します。
Sitecoreのリッチ テキスト エディターにXHTML関連の検証エラーが表示される
コネクターは、Content Hubリッチ テキスト エディター フィールドからSitecoreリッチ テキスト エディターにデータを同期するときに、データ値や形式を変更しません。Sitecoreリッチ テキスト エディターのXHTML検証でエラーが強調表示される場合があります。
この問題を解決するには、次の手順を実行します。
-
コンテンツ エディターで、次の項目を探します。
-
/sitecore/system/Settings/Validation Rules/Field Types/Rich Text
-
/sitecore/system/Settings/Validation Rules/Global Rules
-
-
これら2つの項目の下にあるすべての検証ルールについて、SelectedリストでIs XhtmlをクリックしてAllリストに移動します。
-
アイテムを保存します。
Azureデプロイで "ファイルまたはアセンブリを読み込めませんでした" というエラー 'Microsoft.Extensions.Caching.Abstractionsのエラー
Sitecore Azure ToolKit (SAT) には、構成変換を実行するために必要な依存関係への参照がいくつかありません。
SCCHパッケージをインスタンスに適用すると、bin\scchフォルダに必要なすべてのアセンブリが含まれます。
この問題を解決するには、次の手順を実行します。
-
Azure App Service Editorで、Web.configファイルを開きます。
-
assemblyBindingノードに、次のコードを追加します。
RequestResponse<dependentAssembly> <assemblyIdentity name="Microsoft.Extensions.Caching.Abstractions" publicKeyToken="adb9793829ddae60" /> <bindingRedirect oldVersion="0.0.0.0-3.1.14.0" newVersion="3.1.14.0" /> <codeBase version="2.1.2.0" href="bin/Microsoft.Extensions.Caching.Abstractions.dll" /> <codeBase version="3.1.5.0" href="bin/Microsoft.Extensions.Caching.Abstractions.dll" /> <codeBase version="3.1.14.0" href="bin/scch/Microsoft.Extensions.Caching.Abstractions.dll" /> </dependentAssembly>
-
Azure App Service Editorを保存して更新します。
Sitecore XP 10.1では、Azure Searchを使用するとCMP検索インデックス プロセッサが正しく動作しません
エンティティ識別子フィールド値にハイフン (-) を含むCMPアイテムを検索すると、CMPインデックス プロセッサはCMPアイテムのクローンを作成します。その結果、同じエンティティIDを持つ2つのCMPアイテムがCMPアイテム バケットに存在します。
この問題を回避するには、SearchItemUnderItemBucket関数の検索クエリ$"{fieldValue}"をSitecore.Connector.CMP.Helpers.SitecoreHelperクラスから変更し、$"\"{fieldValue}\""などの検索クエリラッパーを実装する必要があります。
検索クエリを変更するには、メソッドのオーバーライドと依存関係の挿入オーバーライドのメカニズムを使用して、SitecoreHelperクラスにパッチを適用できます。
-
SitecoreHelperExtendという新しいクラスを作成してSitecoreHelperをオーバーライドし、クエリラッパーの変更で既存のSearchItemUnderItemBucket関数をオーバーライドします。
例えば:
RequestResponsepublic override bool SearchItemUnderItemBucket(string fieldName, string fieldValue, Item itemBucket, out ID itemId) { Assert.IsNotNull(fieldValue, $"Could not get the {fieldName}."); using (var context = ContentSearchManager.GetIndex(new SitecoreIndexableItem(itemBucket)).CreateSearchContext()) { SearchResultItem resultItem = context.GetQueryable<SearchResultItem>().FirstOrDefault( searchResultItem => string.Equals( searchResultItem[fieldName], $"\"{fieldValue}\"", StringComparison.Ordinal) && searchResultItem.Paths.Contains(itemBucket.ID)); if (resultItem == null) { itemId = ID.Null; return false; } itemId = resultItem.ItemId; return true; } }
-
SitecoreHelperExtend用の新しいServiceConfiguratorExtendクラスを作成します。
RequestResponsepublic class ServicesConfiguratorExtend : IServicesConfigurator { public void Configure(IServiceCollection serviceCollection) { serviceCollection.AddSingleton<SitecoreHelper, SitecoreHelperExtend>(); } }
-
Sitecore.Connector.CMP.configファイルを開き、サービスコンフィギュレータノードで、新しい依存性注入 (DI) サービスコンフィギュレータを追加します。
RequestResponse<services> <configurator type= "Sitecore.Connector.CMP.DI.ServicesConfigurator, Sitecore.Connector.CMP"/> <configurator type= "Sitecore.Connector.CMP.DI.ServicesConfiguratorExtend, Sitecore.Connector.CMP.Extend"/> </services>
オンプレミスデプロイでMethod does not have implementation error (メソッドに実装エラーがない) がスローされる
SCCH 5.0のContent Hub SDKには、Microsoft.Extensions.DependencyInjectionバージョン3.1.14.0が必要です。Sitecore 10.1.x以前のバージョンを参照するデプロイメントの場合、次のいずれかを実行する必要があります。
-
カスタム アセンブリを更新して再構築し、バージョン3.1.14.0を参照します。
-
web.configファイルにリダイレクト バインド構成を追加します。
オンプレミスのデプロイでは、Microsoftでメソッドの実装が見つからないというエラーがスローされます。Extensions.DependencyInjectionまたはDisposeAsyncメソッドのエラー
10.2より前のSitecoreデプロイの場合、SCCH 5.0にはContent Hub SDKのバージョン3.1.14.0が必要なため、カスタム アセンブリは最新のMicrosoft.Extensions.DependencyInjectionバージョン3.1.14.0を参照する必要があります。
このバージョンを使用できない場合は、次の方法を使用してエラーを解決します。
-
Microsoft Visual Studioで、新しいライブラリ プロジェクトを作成しますSitecore.Connector.DI.
-
作成したプロジェクトに次のパッケージ参照を追加します。
RequestResponse<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.14" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.14" /> <PackageReference Include="Sitecore.Kernel" Version="13.0.0-r*" />
-
プロジェクトで、Configurator.csという新しいクラスを追加します。次のコードを追加します。
RequestResponseusing Microsoft.Extensions.DependencyInjection; using Sitecore.DependencyInjection; namespace Sitecore.Connector.DI { public class Configurator:IServicesConfigurator { public void Configure(IServiceCollection serviceCollection){} } }
-
プロジェクトをアセンブリにコンパイルします。Content Management (CM) インスタンスで、アセンブリ ファイルをbinフォルダにコピーします
-
CMインスタンスで、\App_Config\Modules\Sitecore.Connector.CMPフォルダーに移動し、新しい設定ファイルを追加します。
-
新しい設定ファイルに次の設定を追加します。
RequestResponse<?xml version="1.0"?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <services> <configurator type="Sitecore.Connector.DI.Configurator, Sitecore.Connector.DI"/> </services> </sitecore> </configuration>
-
ファイルを保存します。
アイテム エラーの空のSitecore属性またはContent Hubマッピング フィールド
DAM公開リンク選択ウィンドウでSelectをクリックした後、ログにEmpty Sitecore Attribute or Content Hub Mapping Field on Itemエラーが表示される場合があります。
公開リンクを選択すると、DAMは属性マッピング設定項目を取得します。デフォルトでは、Sitecoreは属性マッピング設定アイテムの英語版フィールド値を使用します。英語以外の言語 (日本語など) を使用する場合は、コンテンツ エディターのMaster DB/System/Modules/DAM/Config/Mappingアイテムに、日本語バージョンの言語値を入力します。
SXAフィールドはDAM機能と連携しません
DAM機能はSXAでは使用できませんが、DAMコネクタをインストールすると、Sitecore内のすべてのイメージ タイプでBrowse Sitecore DAMが有効になります。回避策を使用して、SXAがDAM機能を利用できるようにすることができます。
次の手順では、例としてSXAファビコン フィールドを使用しますが、DAM機能を持つ他のSXAフィールドにも同じことが当てはまります。DAM画像リンクが機能しない主な理由は、ファビコンフィールド値がSXAによって取得されるときにMediaManager.GetMediaUrl() 方法が使用されるためです。
この問題を解決するには、次の手順を実行します。
-
Sitecore.XA.Feature.SiteMetadata.Extensions.FieldExtensions.GetImageUrl()メソッドにパッチを適用するか、次のメソッドを使用して新しい拡張クラスを作成します。
RequestResponsepublic static class MediaExtension { public static string GetImageUrl(this Field field, Item item, ID fieldId, bool includeServerUrl = true) { var imageUrl = string.Empty; if (field != null) { var imageField = (ImageField)field; if (imageField != null) { if (imageField.MediaItem == null) { XmlField imageDAMField = item?.Fields[fieldId]; string src = imageDAMField.GetAttribute("src"); return src; } else { var urlOptions = new MediaUrlBuilderOptions(); urlOptions.AlwaysIncludeServerUrl = includeServerUrl; return MediaManager.GetMediaUrl(imageField.MediaItem, urlOptions); } } } return imageUrl; } }
-
Sitecore.XA.Feature.SiteMetadata.Repositories.Favicon.FaviconRepository.GetFaviconHref()メソッドにパッチを適用して、次のメソッド拡張を使用します。
RequestResponsepublic virtual string GetFaviconHref(Item contextItem) { var faviconHref = string.Empty; var settingsItem = GetSettingsItem(contextItem); var faviconField = settingsItem.Fields[Templates._Favicon.Fields.Favicon]; if (faviconField != null) { faviconHref = faviconField.GetImageUrl(settingsItem, faviconField.ID, false); } return faviconHref; }
-
Sitecore.XA.Feature.SiteMetadata.configファイルで、FaviconRepositoryリポジトリ (またはカスタム リポジトリ) を実装に追加します。例えば:
RequestResponse<register serviceType="Sitecore.XA.Feature.SiteMetadata.Repositories.Favicon.IFaviconRepository, Sitecore.XA.Feature.SiteMetadata" implementationType="<customFaviconRepository>, <customAssembly>" lifetime="Singleton" />
DAMコネクタに関する既知の問題
次の表では、SCCHでDAM機能を使用する際に発生する可能性のある問題の一部と、その解決方法について説明します。
問題が発生する領域 |
形容 |
回避策 |
---|---|---|
コンテンツの種類 |
アセットのコンテンツ タイプがContent Hub DAMで変更された場合、その変更はSitecoreに反映されません。そのため、Sitecoreのレンディションは表示されません。 |
該当なし |
画像のプロパティ |
コンテンツ エディターで画像を右クリックすると、 Image Map EditorとPropertiesの2つのオプションが表示されます。どちらかを選択してImage Managerアイコンをクリックすると、開くメディアライブラリはSitecore DAMライブラリではなく、sitecore/mediaライブラリになります。メディアライブラリを変更するオプションはありません。 |
該当なし |
画像を変更する |
コンテンツ エディター:Browseをクリックしてsitecore/mediaライブラリから画像を選択してSitecore DAM画像を挿入すると、画像フィールドが正しくクリアされません。 |
クリア リンクを使用してフィールドをクリアし、アイテムを保存してから、新しい画像を選択します。 |
画像フィールドをクリアする |
エクスペリエンス エディター: 保存せずにRemove the imageをクリックして画像をクリアしても、エクスペリエンス エディターに画像が表示されていなくても、フィールドはクリアされません。 |
Saveをクリックして問題を解決します。 |
DAMからメディア ライブラリ イメージへの変更 |
エクスペリエンス エディター: Sitecore DAMから画像を挿入し、Choose an imageをクリックしてsitecore/mediaライブラリから新しい画像を挿入し、Sitecore DAM画像を置き換えると、フィールドが正しくクリアされません。 |
「 Remove image 」をクリックし、「 Save」をクリックしてから、sitecore/mediaライブラリから画像を挿入します。 |
SXA |
このバージョンではSXAはサポートされていません。 | |
SXA |
SXAがインストールされていて、IFrameが開いている場合、エラー MAsset Command is not implementedが返され、IFrameは開きません。 |
この問題は、App_Config\Modules\SXA\Feature\ フォルダ内のSXA設定ファイルSitecore.XA.Feature. ContentTokens.configを更新することで解決されます。コマンド スクリプト タグの前に、次のSXAキー属性を付加します。 <script key = “SXA” src=”/sitecore/shel l/Controls/Rich Text Edit/ Insert Content Token Command.js” language=“Javascript”/> |
ビヘイビアリッチテキストエディタ |
リッチテキストエディタでデザインモードを使用して動画を挿入すると、動画を移動したり削除したりすることはできません。プレイすることしかできません。 ただし、2つのコンソール エラーがスローされます。 |
HTMLモードに切り替えて、必要に応じてvideo要素を調整します。 |
ビヘイビアリッチテキストエディタ |
ビデオのみを含むアイテムを保存し、デザイン モードを使用して再度開くと、アイテムはフリーズされ、編集できなくなります。 |
HTMLモードに切り替え、必要に応じて要素を追加します。これにより、アイテムの凍結が解除されます。 |
ログイン手順 |
ログイン手順の一部として、ウィンドウが更新され、コンテンツ/エクスペリエンスエディターは警告メッセージなしで閉じます。 |
ログインを続行する前に、すべての変更を保存してください。一度ログインすると、ウィンドウは再度更新されません。 |
シークレットモードでChromeでログインSitecore DAM |
Sitecoreコンテンツ エディタでChromeをシークレット モードで使用している場合、Browse Sitecore DAMをクリックしてログインしようとすると、Sign Inダイアログ ボックスが再度開き、認証情報の入力を求められます。 |
Chromeブラウザで、CookieオプションをAllow all cookiesに設定します。詳細については、ブラウザのドキュメント を参照してください。 |