上次修改时间: 2010年11月19日
适用范围: SharePoint Foundation 2010
本文内容
升级类
升级序列
配置文件
本主题介绍 Microsoft SharePoint Foundation 2010 和 Microsoft SharePoint Server 2010 应用程序如何使用 Microsoft.SharePoint.Upgrade 对象模型升级部署。本主题中提供的信息为描述性的信息,不适合一般的公开使用。
SharePoint Foundation 2010 和 SharePoint Server 2010 使用 Microsoft.SharePoint.Upgrade 命名空间的对象模型来定义服务器应用程序的升级操作,这些应用程序是在升级到 SharePoint Foundation 的下一版本或内部版本时,在 SharePoint Foundation 2010 平台的基础上构建的。该对象模型用于定义一系列要以连续方式执行各种特定任务的操作,在升级到 SharePoint Foundation 的新版本或内部版本时,服务器应用程序需要执行这些操作。
警告 |
|---|
如果尝试在 SharePoint Foundation 升级过程中包含自定义代码,则可能引发各种问题。例如,由于命名空间必须是唯一的,并且不能与默认产品名重叠,因此可能会使架构版本控制变得混乱,并且在每次发布 SharePoint Foundation Service Pack 时都可能破坏环境。此外,在自定义升级应用程序中使用此对象模型还会对性能产生严重影响。或许可以使用此对象模型的唯一上下文是对当前版本的 SharePoint Foundation 进行内部版本到内部版本升级,或在当前版本和下一版本之间进行版本到版本升级,例如对 Service Pack 进行版本到版本升级,对自定义应用程序进行内部版本到内部版本升级。 请使用 SharePoint Foundation 中提供的其他方式来升级部署,而不使用此对象模型定义升级逻辑。例如,通过功能部署事件处理程序,可以实现用于升级功能的自定义代码。请尽可能使用 SharePoint Foundation 中的声明操作来完成任务,而不是编写代码。逐个修改 Web 部件,以便它们能够在 Microsoft SharePoint Foundation 2010 中运行。要升级网站定义,请使用升级定义文件 (UDF) 定义升级操作。 |
升级类
SPAction 类是升级过程中为满足特定需要而从中派生其他类的基类。例如,为了定义升级数据库的各项操作,SPDatabaseAction 类继承自 SPAction。例如,升级应用程序可能需要 SharePoint Foundation 执行升级服务器场的操作,以及升级 Internet Information Services (IIS) 网站、数据库、SharePoint 网站集、Web 应用程序和服务器的操作。
SPSequence 类是 Microsoft.SharePoint.Upgrade 命名空间中其他序列类的最终基类,该命名空间包括从中派生 SPDatabaseSequence、SPIisWebSiteSequence、SPPersistedObjectSequence 和 SPSiteSequence 的 SPActionSequence。此对象模型还可实现用于访问升级属性和迁移安装的资源(例如 SPManager 和 SPMigrator 类)。SPUpgradeException 类用于捕获特定于 SharePoint Foundation 的异常。
升级序列类具有指定要加载和运行的升级操作的基本类型的特性。每项升级操作均包含一个版本属性标记,通过比较要升级的资源的当前版本与升级操作的目标版本,该标记可指定是否需要运行特定升级操作。版本属性标记还用于对各项升级操作进行排序。
[TargetSchemaVersion("14.0.1.0")]
[ActionBaseType(typeof(MyWebAppAction))]
[TargetUpgradableObject(typeof(SPWebApplication))]
序列的 TargetSchemaVersion 属性应与操作模块中最新更新操作的 TargetSchemaVersion 属性相匹配。
升级序列
SharePoint Foundation 升级基础结构可定义升级应用程序的特定资源或服务实例的接口。每个操作模块与定义操作的相应序列的单独目录中的名称相似的操作序列模块相配对。升级序列可定义从 SharePoint Foundation 对象模型提供的序列类之一继承的类,并实现或替代其成员。基础结构以一致且确定的方式调用升级代码,换句话说,升级序列表示某资源的升级代码的逻辑块。
警告 |
|---|
SharePoint Foundation 不支持覆盖或尝试追加到它的默认升级序列之一。 |
升级按顺序进行,从逻辑层次结构中位置较高(更接近根)的项目开始,但在升级整个服务器场之前,进程实际上会先升级较低级别的项目(例如,先升级数据库,然后再升级其他对象)。升级时会首先升级配置数据库和 SharePoint 管理中心以及特定于服务器场中每台服务器的数据,然后在每个 Web 应用程序上运行升级过程以升级每个网站集,直到每个 Web 应用程序的所有网站集中的所有网站均已升级。这样,以前版本的每个 Web 应用程序都会逐个升级到当前版本的 Web 应用程序,而支持其网站集的内容数据库也遵循此升级过程。
升级序列包含一个或多个在运行时发现的升级操作,需要执行这些操作才能升级特定功能。SharePoint Foundation 会接受一个资源实例或一组资源实例,确定需要对基于配置文件中指定的已加载程序集的资源执行哪些升级序列,并在所选资源上运行这些序列。这些序列是根据配置文件中指定的信息排序的。
SharePoint Foundation 升级是数据驱动的,这意味着将按特定顺序升级在配置数据库中注册为可升级的资源。诸如网站集这样的对象可能具有多个升级序列。而 Web 应用程序(虚拟服务器)、内容数据库或共享服务等内容都可能具有升级序列。可升级对象具有内置架构版本控制,允许设置升级相关项,并具有用于确定是否需要升级当前对象以及是否升级该对象的属性。
升级基础结构包含可升级对象的用于升级特定资源的接口定义。升级序列(或插件)基于需要升级的资源实现此接口,以便可以调用升级代码。升级序列可在给定服务器上运行任意多次。升级序列确定是否需要在任意给定时间执行任意操作,它还能够在发生错误时提供适当的检查点,以便在下次运行升级代码时从某一点处继续升级。升级序列可创建日志,并将错误和进度报告返回到用户界面。
配置文件
配置文件是一个指示所有插件的 DLL 和类名称的 XML 文件。这些文件在运行时用于实例化正确的类并使用映像执行这些类。SharePoint Foundation 包括 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Config\Upgrade 文件夹中的默认配置文件,这些文件用于定义应用升级的产品版本和架构版本的范围,注册定义要升级的类的程序集,将旧文件映射到 SharePoint Foundation 2010 安装目录中的指定位置,以及弃用旧版本中包含的功能。
警告