コンテンツAPIのトラブルシューティング
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックには、Sitecore開発者がコンテンツAPIを使用する際に経験する一般的な問題のトラブルシューティング情報が含まれています。
構成ノードが見つかりませんでした
存在しないデータベースにSitecore.Configuration.Factory.GetDatabase() メソッドを使用してアクセスしようとすると、またはデータベース名をweb.configの設定と同じ文字で入力しない場合は、ブラウザに次のようなメッセージが表示されることがあります。
System.InvalidOperationException: Could not find configuration node
Sitecore.Configuration.Factory.GetDatabase() メソッドに最初のパラメータとして渡された値が、web.configの適切な /configuration/sitecore/databases/database要素のID属性と一致していることを確認します。
オブジェクト参照がオブジェクトのインスタンスに設定されていない
存在しないアイテムや公開されていないアイテムにアクセスしようとすると、ブラウザーに次のようなメッセージが表示されることがあります。
System.NullReferenceException: Object reference not set to an instance of an object
アイテムに指定されたIDまたはパスが正しいこと、コードが正しいデータベースにアクセスしていること、アイテムがそのデータベースに存在していること、およびコンテキスト ユーザーがアイテムに対するitem:read アクセス権を持っていることを確認します。アイテムまたはそのデータ テンプレートを公開するか、セキュリティ ユーザー スイッチャーまたはセキュリティ ディセーブル ツールを使用する必要がある場合があります。
アイテムが編集モードになっていない
編集モードにせずに項目を更新しようとすると、ブラウザーに次のようなメッセージが表示されることがあります。
Sitecore.Exceptions.EditingNotAllowedException: Item is not in editing mode
コンテキストユーザーには、セキュリティユーザースイッチャーやセキュリティ無効化を使用する代わりに、適切なアクセス権を付与することをお勧めします。このドキュメントのコード例では、セキュリティ ユーザー スイッチャーやセキュリティ ディセーブル キーは使用していません。これには、ロジックを成功させるために、コンテキスト ユーザーが必要なアクセス権を持っている必要があります。
現在のユーザーには、このアイテムへの書き込みアクセス権がありません
コンテキスト ユーザーが item:writeセキュリティアクセス権を持っていないアイテムを更新しようとすると、ブラウザに次のようなメッセージが表示されることがあります。
System.UnauthorizedAccessException: The current user does not have write access to this item
コンテキスト ユーザーがアイテムに対するitem:writeアクセス権を持っていることを確認します。セキュリティ・ユーザー・スイッチャーまたはセキュリティー無効化機能の使用が必要な場合があります。
必要なアクセス権を追加
コンテキスト ユーザーがアイテムにアクセスするアクセス許可を持っていないアイテムの下にアイテムを追加しようとすると、ブラウザーに次のようなメッセージが表示されることがあります。
Sitecore.Exceptions.AccessDeniedException: AddFromTemplate - Add access required
コンテキスト ユーザーが親アイテムに対するitem:createアクセス権を持っていることを確認します。セキュリティ・ユーザー・スイッチャーまたはセキュリティー無効化機能の使用が必要な場合があります。セキュリティ ユーザー スイッチャーまたはセキュリティ ディセーブルの使用の詳細については、How to Resolve Item Access Rightsの項を参照してください。
アイテムを作成すると、Sitecoreは、アイテムのデータ テンプレートの標準値で指定されたデフォルトのワークフローの初期状態に、コンテキスト言語の最初のバージョンを自動的に配置します。
アイテムのワークフロー状態を更新するには、次の方法を参照できます。
-
Sitecore.Workflows.Simple.Workflow.Start
-
Sitecore.Workflows.Simple.Workflow.Execute