我是sharepoint的新手。我对sharepoint部署的疑问很少。如果有人在这些问题上澄清我,那将是件好事。
我必须将一个sharepoint应用程序/站点从一个服务器部署到另一个服务器。有很多文件,如.ascx(通过asp.net创建),。dll webparts和workfolwsetc存在于应用程序中。我该如何将所有这些文件从一台服务器部署到另一台服务器这是用于测试(另一台服务器)。此外,项目中还存在10个以上的解决方案文件(包含所有文件)。
我尝试了一些事情,通过不同的网站,如使用目标,makecab等,但它对我来说有点混乱。因为我的应用程序中不存在任何清单文件,并且存在多个解决方案文件。我是否必须为个人解决方案编写自己的清单文件,或者为项目编写一个清单文件,或者必须由开发人员提供?什么应该是ddf中的功能,工作流xmls的路径。在哪里部署wsp文件。还有在服务器中部署wsp文件后填充站点的步骤。
我是否必须重新创建目标服务器中的所有网站?
是否有可用于部署的免费工具?如果是,那么我们可以部署哪个部分:Web部件或工作流程?
我们可以将NAnt用于此活动吗?
提前感谢。
答案 0 :(得分:1)
您可以使用stsadm
将内容数据库从一台服务器复制到另一台服务器。这个任务肯定可以通过nant自动完成(这就是我们的工作)。
使用stsadm -o backup
,您可以创建内容和配置数据库的备份。然后使用stsadm -o restore
恢复它们。例如:
stsadm -o backup -url http://yoururl -filename prodsite.dat -overwrite
stsadm -o restore -url http://newurl -filename prodsite.dat -overwrite
我高度推荐SharePoint 2007 Administration。如果您不知道自己在做什么,可以很容易地管理SharePoint安装。
答案 1 :(得分:1)
如果您的所有文件都在解决方案(WSP)中,那么请将这些文件转发到其他服务器。然后通过在原始内容数据库的sql server上进行备份来复制内容数据库,将其还原到新环境的数据库服务器上。然后在新计算机上重新创建Web应用程序,指定内容数据库的名称以与刚刚还原的数据库名称相对应。然后部署解决方案以纠正Web应用程序。
修改强>
//添加WEB.CONFIG MOD
SPWebConfigModification modification = GetModification(key, value);
if (!webApp.WebConfigModifications.Contains(modification))
{
webApp.WebConfigModifications.Add(modification);
webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
webApp.Update();
}
和GetModification方法(不久前在互联网上找到)
private static SPWebConfigModification GetModification(string key, string value)
{
if (string.IsNullOrEmpty(key))
{
throw new ArgumentNullException("key", "The key parameter is mandatory");
}
if (string.IsNullOrEmpty(value))
{
throw new ArgumentNullException("value", "The value parameter is mandatory");
}
var modification = new SPWebConfigModification
{
Name = String.Format(CultureInfo.InvariantCulture, @"add[@key=""{0}""]", key),
Path = "configuration/appSettings",
Value = String.Format(CultureInfo.InvariantCulture, @"<add key=""{0}"" value=""{1}"" />", key, value),
Owner = Assembly.GetExecutingAssembly().FullName,
Sequence = 0,
Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
};
return modification;
}