使用ContentDeploymentJob.AddQuickDeployObject的时候, 请注意第三个参数一定要使用Server Relative URL

MSDN描述这个方法的时候, 并没有写上这个十分值得注意的地方. 笔者在解决一个朋友的问题的时候, 发现了这个问题.

笔者已经在MSDN的ContentDeploymentJob.AddQuickDeployObject Method 文章下面添加了一条注释, 提醒大家使用这个content deployment API的时候注意一下.

这里用中文对原因做出解释, 方便国内的朋友们.

正如大侠Stefan介绍的, 一个页面在被指定需要quick deploy之后, SharePoint的一个隐藏列表(名为’Quick Deploy Items’)中会添加一条关于这个item的记录. 如下:

image

列表如下:

image

每次Quick Deployment Job运行结束之后, 该列表中的items都会被清空.

如果我们使用方法ContentDeploymentJob.AddQuickDeployObject 来指定某个非publishing页面(因为publishing页面不需要我们编程来标记为需要quick deploy), 比如说图片, 文档之类的item需要被quick deploy的话, 正常情况下, 我们标记的item在quick deploy之后也应该被清除掉的. 但是, 如果你在第三个参数, 即itemUrl中赋予的是一个full URL,虽然deploy会成功, item在目标站点集里会出现, 但是在quick deploy items列表中的列表项却永远不会被自动删掉了.

原因是SharePoint在执行quick deploy job后的清理工作的时候, 当我们制定的itemUrl参数的值跟这个item的relative URL匹配的时候, 才会执行删除动作.

这个问题比较难发现, 所以记在这里, 供大家参考.

参考资料

=================

ContentDeploymentJob.AddQuickDeployObject Method

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.administration.contentdeploymentjob.addquickdeployobject.aspx

Content Deployment – The complete Guide – Part 5 – Quick Deployment

http://blogs.technet.com/b/stefan_gossner/archive/2009/11/04/content-deployment-the-complete-guide-part-5-quick-deployment.aspx

原文地址:https://www.cnblogs.com/awpatp/p/2124675.html