私は Sitecore の開発に不慣れなので、この質問が基本的なものであれば申し訳ありません。エージェント (スケジュールされたタスク) と WCF サービスの両方を作成し、両方を SiteCore プロジェクトに追加しました。エージェントは、WCF サービス コードが呼び出すのと同じコードを呼び出します。
私が抱えている問題は、Database.Template[ID template]
処理したいアイテムの対応するテンプレートの ID コンテナーを渡すと、エージェント タスク内では機能しますが、WCF サービス内では機能しないことです。
Database.Template[ID id]
WCF サービス内で呼び出しを行うとエラーが発生NullReferenceException
しますが、エージェント内でまったく同じ呼び出しを行うと、テンプレートが適切に収集されます。
これは、呼び出し元のアプリケーションが Web サービスではなく Web ページであることに依存する何らかの構造上の理由によるものですか?
編集#1:許可された拡張子としてsvcがあり、両方を試しました
Sitecore.Configuration.Factory.GetDatabase("master")
と
var siteContext = Sitecore.Configuration.Factory.GetSite("websiteMaster");
siteContext.Database.Template[];
both which return NullReferenceException
.
I also can successfully obtain an Item, using GetItem
, however when I try to access the Template property of that item, I get a NullReferenceException
.