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