ページを公開するためのTridionCoreServiceWebアプリケーションがあります。サーバーにログインし、そこからajaxを使用してWebサービスを呼び出すブラウザークライアントを介してサーバーを実行すると、正常に機能します。ただし、デスクトップからアプリケーションを実行すると、何も実行されず、エラーメッセージもスローされません。
*編集:WebサービスをホストしているWebアプリは、Tridion 2011CMSWebサイトで「アプリケーション」として実行されています。これは、クロスドメインのajaxの問題を回避するために行われます/
- 更新:以下のコードは正常に機能しています-なりすましとニックのソリューションの両方で。私の問題は、実際には、jQueryからWebサービスを呼び出し、適切なURLを使用する方法にありました。私はコードと質問を残しているので、多分それは他の人を助けるでしょう。
私のコードは次のとおりです。
string binding = "wsHttp_2011";
using (var client = new SessionAwareCoreServiceClient(binding))
{
client.Impersonate("company\\cms_svc");
// ** Get Items to Publish
List<string> itemsToPublish = GetItemsToPublish(publishItem.TcmUri, client);
PublishInstructionData instruction = new PublishInstructionData
{
ResolveInstruction = new ResolveInstructionData() { IncludeChildPublications = false },
RenderInstruction = new RenderInstructionData()
};
PublicationTargetData pubtarget = (PublicationTargetData)client.Read(publishItem.PubTargetUri, readoptions);
List<string> target = new List<string>();
target.Add(pubtarget.Id);
client.Publish(itemsToPublish.ToArray(), instruction, target.ToArray(), GetPublishPriority(publishItem.Priority), readoptions);
}