我有一个 Tridion 核心服务 Web 应用程序来发布页面。当登录到服务器并通过浏览器客户端从那里运行它时,它使用 ajax 调用 Web 服务,它工作正常。但是,当我从桌面运行应用程序时,它什么也不做,也不会抛出任何错误消息。
*编辑:托管 Web 服务的 Web 应用程序在 Tridion 2011 CMS 网站下作为“应用程序”运行。这样做是为了避免跨域 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);
}