由于我们在使用stsadm恢复站点/站点集合(我们从工作stream生成的任务没有恢复)时发现问题,我们采取了不同的备份/恢复路线。 我们计划对我们的SP网站进行主要的定制,并希望进行备份,以便在安装失败的情况下进行回滚。 在我们的系统testing(非生产)环境中,我们备份了12个configuration单元,IIS指向SharePoint的虚拟目录以及SQL中的SharePoint数据库(使用SQL Server执行数据库备份)。
我们拥有使用Visual Studio构build的自定义事件处理程序和工作stream,并将这些dll部署到版本2(在Visual Studio中签名和版本化)。 因此,当我们部署时,GAC将包含2个版本的工作stream – 版本1和版本2.在部署期间,我们使用SP stsadmfunction来安装/激活WF。 我们也去每个图书馆,并添加新的,版本2 WFs。 这会自动将版本1的WF设置为“不允许”新的实例(这是我们想要的),而版本2是活动的 – 至今为止是完美的。
当我们完成安装后,我们假设失败并尝试恢复到相同的机器(一台服务器上的SharePoint,另一台上的SQL)。 我们首先从GAC中卸载第二版WF,重置IIS(清除这些第二版WF dll的caching),恢复12-hive和虚拟目录文件夹,然后恢复SQL dbs。 这一切和阅读时一样手册 – 在这里没有stsadm。 所有似乎恢复后,似乎还原成功 – 我们对列名称,数据更改等在安装过程中的mod都恢复到原始的预安装状态。 有一个例外。 当我们运行一个工作stream时,它总是失败,12-hive中的日志表明WF仍在尝试使用dll的版本2(System.IO文件未find错误)我们认为我们已经备份并恢复了所有Sharepoint的移动部分,但我们在这里失去了一些东西,有没有人有任何想法,为什么版本2的WF dll仍然被引用尽pipe我们恢复了SharePoint的所有文件夹和数据库?
谢谢,凯文
凯文,
如果我正确理解您的操作顺序,我有一个很大的问题:您是否正在还原内容数据库,但在还原过程中将服务器场configuration数据库(以及其他数据库,如SSP数据库)保持不变? 如果答案是“是”,那么我怀疑SharePoint是否合适,因为您的configuration数据库仍然保留对工作streamv2的引用。 这是我怀疑可能会发生的事情。
将function安装到SharePoint场时, SPFarm.FeatureDefinitions集合(在服务器场configuration数据库中维护)将进行更新,以反映您添加的内容。 这包括您希望function包含的所有标准信息:名称,范围,ID,版本等。它还保留了FeatureReceiver程序集信息和RootDirectory值等。 RootDirectory属性指向function清单所在的12-hive中的文件夹。
当您将v2工作streamfunction添加到服务器场并将其激活时,configuration数据库将更新。 即使您还原了内容数据库的pre-v2工作stream程版本,由于在configuration数据库级别维护的function关联,服务器场仍将查找工作stream程的第2版。 如果v2 Feature文件夹仍然存在于12-hive中,并且其清单指向GAC中的v2程序集,则很容易发现可能出现的问题。
同时,如果您的工作streamfunction利用FeatureReceiver,那么在FeatureDefinitions集合的ReceiverAssembly属性中安装Feature后,该信息也会存储在configuration数据库中。
如果我错了,而且实际上是在恢复整个农场(包括configuration数据库),那么我写的内容不适用。 在那种情况下,我也会留下一些伤脑筋的。 🙂
我希望这有帮助!
在完成安装之后,您是否可以尝试从列表中删除工作stream绑定,因此首先从列表中删除所有工作stream关联,然后从GAC中删除V2 dll,然后重新部署dll,然后重新关联工作stream,以确保所有剩余的对工作stream的引用都已经消失(从内容数据库和configuration数据库),并强制共享点重新绑定/重新configuration工作stream关联。
PS这是非常奇怪的工作stream相关的任务不会恢复,他们只不过是内容,应该在内容数据库,我认为工作stream任务是绑定到一个工作stream程,不能正确恢复(看作为工作stream关联存储在内容数据库和configuration数据库…)。 当还原发生时,工作stream程基本上被重新初始化,得到一个新的GUID等等。对于分享点来说,这似乎是一个新的工作stream程,所以与旧工作stream程相关的任务不再受限制)。
我build议您深入研究实际问题,而不是创build自定义解决scheme。
看看这个网站和这篇文章的工作stream相关的恢复/包装麻烦以及如何实际保存/创build工作stream程的更多信息..
我从来没有使用它(甚至不是一个Sharepoint的家伙),但这可能适合你。 在CodePlex上偶然发现…