如果你想要把你的Sharepoint网站集从测试服务器移动到生产服务器上,根据网上的资料,有多种方式可以实现,这里我测试了使用STSADM的方式进行移动(此方式微软好像不太推荐,尤其是在跨Farm进行移动时会存在问题,不过此处我们只是在同一Farm的不同服务器上操作,所以问题不大,实际上,我们提到“移动Moving”,应该是在同一Farm的环境下操作,如果是跨不同的Farm操作,准确的用语应该是 Migration/Updating)。下面直接描述操作步骤。
步骤一、使用STSADM Command备份Testing服务器上的Website Collection
用此命令前,可以参考我的另一篇笔记
备份时使用的STSADM Command如下:
Stsadm –o backup –url http://<server name>:<port> -filename <path\name to be used for the backup file>
Example:
tsadm –o backup –url http://sharepoint2010:6666 –filename "e:\backup6666.bak"
述命名中: http://sharepoint2010:6666 就是你想要备份的Website Collection,如果备份操作顺利完成,就会显示 “Operation Completed Successfully”
有直接使用此命令,而是在Testing 服务器的C:\下创建了一个批处理文件(BackupMySP2010.BAT),代码内容如下:
接运行此文件即完成Website Collection的备份操作
步骤二、在生产服务器上创建Web Application用于运行将要恢复的网站集
入生产服务器 Sharepoint的Central Administration -> Application Management -> under SharePoint Web Application Management -> click Create or Extend Web Application. 填写需要的信息,然后点 Ok 等待Web Application创建命令执行完毕
步骤 三、当Web Application创建成功后,运行 STSADM 恢复我们先前备份的Website Collection。
1.把先前备份Testing服务器上的Website Collection 文件D:\ SPBackup\MySP2010Backup\ MySP2010Backup.dat 复制到生产机上的指定目录下(当然,如果两机共享,你也可通过网络直接访问而省掉此步),本例我们复制到生产机的目录D:\ SPBackup\MySP2010Restore\
2.使用如下STSADM Command命令恢复备份的网站集
Stsadm –o restore –url http://<server>:<port> -filename <path\name of the backup file>
Example:
Stsadm –o restore –url http:// sharepoint2010:6666 –filename " D:\ SPBackup\MySP2010Restore\ MySP2010Backup.dat"
针对此步,我依然使用了批处理命令文件(RestoreMySP2010.Bat),代码内容如下:
直接执行此文件,自动完成恢复Website Collection的工作。
步骤 四. 如果恢复工作没成功,或者你在恢复完成后访问网站时遇到了一些奇怪的错误提示信息,这种情况,多半都是因为你原先的网站集有用户个性化的内容或设置,此类情况只有具体问题具体处理,针对不同的个性化内容进行相应的部署和操作,以达到和测试服务器上一致的个性化效果 。
下面我们列出最常见的处理情况。
1.部署用户的Solution(如果有的话)到生产机上.
1.1 使用STSADM命令先把用户Solution部署到服务器场上
stsadm –o addsolution –filename <path to mysolution.wsp>
Example:
stsadm -o addsolution -filename "D:\SP1DEVshare\Solution\bin\Debug\mysolution.wsp"
如果此Solution已经部署过了,则要先删除再部署,删除命令是
stsadm -o deletesolution -name "mysolution.wsp" -override
1.2 再使用STSADM命令把Solution部署到用户前面恢复的Web Collection上
stsadm -o deploysolution -name mysolution.internet.test.wsp -url <site> -immediate -allowgacdeployment –allowcaspolicies
Example:
stsadm -o deploysolution -name StarMaidSpSolutions.wsp -url http:// sharepoint2010:6666 -allowgacdeployment -immediate
此步骤也可以使用Sharepoint 管理中心的System SettingsàFarm ManagementàManage Farm Solution来完成,操作程序是: 选择要部署的 solution ,点击 顶上的‘Deploy’ 按钮,选择需要部署到的Web Application并确定。然后管理中心开始执行你的部署操作,这可能要花上几分钟。此过程完成后,要记得重新启动 IIS以使得刚才的部署快速生效。
2. 确保你移动的Web Collection所要用到的所有的Asssemblies (DLL)也存在于生产机的GAC(Global Assembly Cache)中
GAC通常位于c:\windows\assembly目录。
3.激活用户Solution所涉及到的features.
在用户新部署的Web Collection中,Site Actionsà Site Settingsà Site Collection Featuresà
点击Activate按钮以激活相应的Site Collection Features
4.更新 Web.Config 文件
当用户的Solution添加DLLS时,我们需要修改Web.config,使它们注册为安全的Contol(Safe Controls)。可能还有其它某些设置需要在Web.config中修改(AssemblyBindings, PageParserPaths and Keys)。此文件的错漏会导致我们新移植的Website Collection跳出许多奇怪的报错。我们通常的作法是同时打开生产机和测试机上的此Website Collection的Web.config文件,比较两者,然后用参照测试机上的Web.config文件,使用Copy /Paste在生产机的Web.config文件中完善遗漏掉的设置。
Web.config 通常可以在如下的路径下找到: <drive letter>:\Inetpub\wwwroot\wss\VirtualDirectories\<port number>\web.config
Example: C:\Inetpub\wwwroot\wss\VirtualDirectories\6666\web.config
通常此步骤做完,新移植的Website Collection就可以在生产服务器上运行了。