背景:Microsoft SharePoint Foundation 中的内容实体

上次修改时间: 2010年10月8日

适用范围: SharePoint Foundation 2010

本文内容
概述
SharePoint Foundation 网站
SharePoint Foundation Web 应用程序
SharePoint Foundation 内容数据库
SharePoint Foundation 网站集

本主题介绍 Microsoft SharePoint Foundation 中的内容实体的层次结构。这些实体由 SharePoint Foundation 对象模型的内容层次结构中更高级别的类建模。有关 SharePoint Foundation 部署中的物理实体和服务实体的背景信息,请参阅背景:Microsoft SharePoint Foundation 中的物理对象背景:Microsoft SharePoint Foundation 中的服务实体

概述

SharePoint Foundation 创建了一个新的、抽象的 Web 世界,其中的主要实体是列表和列表项,而不是页面。但对于浏览器而言,万维网(或 Intranet)是一个彼此之间存在链接的页面的世界;并且这些页面是作为位于特定 URL 地址的服务器宿主文件存在的。因此,当 SharePoint Foundation 网站必须将自身作为列表世界呈现给用户(甚至于呈现给某些网站管理员)时,必须基于始于二十世纪九十年代早期的旧世界(即一个由浏览器呈现的页面的世界)来实现。

由于 SharePoint Foundation 必须是基于页面构建的,因此 SPWeb 类表示的 SharePoint Foundation 网站是一个包含文件(特别是 .aspx 文件)、关联数据、用户和权限策略的集合(尽管此网站不仅仅是一组文件)。此网站可以具有子网站。(子网站也由 SPWeb 类表示。)此外,每个 SharePoint Foundation 部署都会将其网站组合到一个或多个网站集中,这些网站集在对象模型中由 SPSite 类表示。而且,网站集自身将组合到一个或多个组中,这些组称作内容数据库并由 SPContentDatabase 类表示。网站集组是 SharePoint Foundation 中的一个或多个 Web 应用程序的子级。Web 应用程序由 SPWebApplication 类表示。

备注

由于之前在原始版本的 SharePoint Foundation(即 Microsoft SharePoint Team Services)中,简单地将网站集称作"网站",因此就将表示网站集的类命名为 SPSite。同样,SharePoint Foundation 中称作"网站"(或有时只称作"站点")的内容原来称作"Web"。因此,表示此内容的类称作 SPWeb。虽然 SPSite 对象表示某类事物的集合,但从实现 ICollection 的类的含义上来说,SPSite 类不是一个集合。SPSiteCollection 类实现后者的接口。它表示 SPSite 对象的集合。

因此,从某种意义上来说,SharePoint Foundation 中的网站、网站集、内容数据库和 Web 应用程序都是 SharePoint Foundation 部署中的内容分区。

SharePoint Foundation 网站

一个由 SPWeb 类表示的 SharePoint Foundation 网站,它是经过优化以便进行内容管理和协作的 ASP.NET 网站。该网站主要在以下几个方面与其他 ASP.NET 应用程序不同:

  • 该网站不再强调页面,而是改为强调列表和列表项。例如,SharePoint Foundation 网站(类型为 STS)的"快速启动"会显示一个网站、子网站和列表(包括列表的列表)的层次结构,而不是页面本身构成的层次结构。如果向此网站添加页面,则新的页面在"快速启动"中将作为共享文档列表中的新项出现,而不是作为主页或某些其他页面下的子节点出现。

  • 该网站赋予用户管理能力。任何给定用户所具有的能力大小由授予该用户的权限决定。通常,最终用户能够创建全新的网站(作为现有网站的子网站),并能够在现有网站上添加和编辑内容。

  • 该网站是可以在其上激活 SharePoint Foundation 功能的四个级别之一。其他三个级别为网站集、Web 应用程序和场。(有关 SharePoint Foundation 对象模型中的场角色的详细信息,请参阅 Microsoft SharePoint Foundation 的物理对象层次结构。)

网站是网站集内容的子集这一事实并不表示给定集合中两个网站的内容会相互排斥:例如,一个给定列表可以在多个网站上出现。

网站集中网站的层次结构中始终只包含一个首要网站。可以从下文中的 SharePoint Foundation 网站集一节了解有关首要网站的详细信息。

SharePoint Foundation Web 应用程序

一个由 SPWebApplication 类表示的 SharePoint Foundation Web 应用程序,它基本上就是一组内容数据库,其中每个内容数据库均包含网站集;而网站集自身是网站的集合,这些网站又是文件的集合。

但 SharePoint Foundation Web 应用程序并不仅仅是最高级别的网站分组,它还是 SharePoint Foundation 部署在其上对 IIS 可见的层。每个 SharePoint Foundation Web 应用程序均通过一个 IIS 网站公开,并在 IIS 管理器的网站树中出现。(请参见图 1。)因此,SharePoint Foundation Web 应用程序中的所有网站集和网站(以及子网站)对于 IIS 来说只是一个大的网站而已。

备注

此处可能发生术语混淆:SharePoint Foundation 将其称作"Web 应用程序"的项是通过一个或多个 IIS"网站"获得服务的。

图 1. SharePoint Foundation 前端 Web 服务器上显示应用程序池和 IIS 网站的 IIS 管理器

显示网站和应用程序池的 IIS

在创建 IIS 网站后,IIS 将自动为每个 IIS 网站提供它自己的应用程序池,并且每个应用程序池具有自己的进程。这样,每个 SharePoint Foundation Web 应用程序将在自己的进程中运行。如果其中的某一个进程发生崩溃,则其他进程将继续运行。这是 SharePoint Foundation Web 应用程序与对象模型层次结构中的较低层之间最重要的区别。内容数据库和网站集彼此之间没有进程隔离机制,但 Web 应用程序具有这种机制。

备注

严格来说,无需保持 IIS 网站与应用程序池之间的一对一关系。在 IIS 管理器中,可将网站从一个应用程序池移动到另一个应用程序池。因此,可以将多个 SharePoint Foundation Web 应用程序移动到同一个池中,从而共享同一进程。在某些情况下,为了获得这种进程共享带来的性能增强,有必要放弃崩溃保护。尽管如此,人们并不会经常使用进程共享。因此,本文假定每个 SharePoint Foundation Web 应用程序具有它自己的进程。

SharePoint Foundation Web 应用程序和 SharePoint Foundation 网站集之间的其他一些重大差异:

  • 每个 Web 应用程序具有一个或多个自己的子内容数据库,但每个网站集仅属于一个父内容数据库(网站集可以与同一 Web 应用程序中包含的其他网站集共享此父内容数据库)。

  • 安全策略(如身份验证和启用匿名用户)都是在 SharePoint Foundation Web 应用程序级别设置的。

图 1 显示的是在单一服务器上刚安装 SharePoint Foundation 之后的 IIS 管理器(用于 ISS 6.0)。请注意,此安装创建了两个 IIS 网站,每个网站均具有它自己的应用程序池(和进程)。其中一个 IIS 网站针对的是用于向最终用户提供内容的主要 SharePoint Foundation Web 应用程序,此网站名为"SharePoint - 80"("80"为服务器端口号,将通过此端口号传入 SharePoint Foundation 页面的请求);另一个 IIS 网站名为"SharePoint Central Administration v3",可供 IT 专业人士用来执行高级管理任务。您也许能够猜到为什么要创建单独的 SharePoint Foundation Web 应用程序,而不是在"SharePoint - 80"内创建一个网站集或网站。通过将两个 SharePoint Foundation Web 应用程序的进程隔离,即使"SharePoint - 80"内的某个网站上的错误代码导致后面的 Web 应用程序在每次重启后立即崩溃,网络管理员仍然可以访问管理中心。此外,通过使管理应用程序成为一个单独的 Web 应用程序,管理员能够为其指定与身份验证和匿名用户相关的不同策略。

如果在具有多台服务器的场中安装 SharePoint Foundation,并且前端服务器和后端服务器(在 SharePoint Foundation 中称作"应用程序服务器")的配置不同,则"SharePoint – 80"仅在前端服务器上运行。"SharePoint Central Administration v3"在一台应用程序服务器上(且仅在一台应用程序服务器上)运行。可以从 Microsoft SharePoint Foundation 的物理对象层次结构Microsoft SharePoint Foundation 的服务层次结构中了解有关场和不同类型的服务器及其角色的详细信息。

"SharePoint Central Administration v3"应用程序之外的 SharePoint Foundation Web 应用程序称作"内容发布 Web 应用程序"。

当创建初始"SharePoint - 80"Web 应用程序时以及创建任何内容发布 Web 应用程序时,都将为相应的 Web 应用程序创建新的内容数据库。然后依次为新建的数据库创建一个网站集,并为新建的网站集创建一个首要网站。

多个内容发布 Web 应用程序

在许多中小型机构中,始终只会创建默认安装的这两个 SharePoint Foundation Web 应用程序。即使"SharePoint – 80"Web 应用程序的使用负载足以需要一个服务器场来承载它,也可能会出现此情况。但在有些情况下,需要额外的内容发布 SharePoint Foundation Web 应用程序,并且每个 Web 应用程序需要一个 IIS 网站和相应的应用程序池。下面是这些情况的一些示例。(一个给定场绝不会具有多个"管理中心"SharePoint Foundation Web 应用程序。)

  • 当机构逐渐从 Windows SharePoint Services 3.0 转换到 SharePoint Foundation 时,同一服务器上可能部署这两个版本。在此情况下,每个版本将具有单独的 SharePoint Foundation Web 应用程序(或单独的 Web 应用程序集)。

  • 如果在一台承载生产用 SharePoint Foundation 部署的服务器(或前端服务器组)上开发新的 SharePoint Foundation 解决方案,则直到对该解决方案进行彻底的测试之后,才能在单独的 SharePoint Foundation Web 应用程序中实现它。这样做可确保在新的解决方案发生崩溃时,不会导致生产用 SharePoint Foundation Web 应用程序停止运行。此外,未经测试的 Web 应用程序的内容数据库应与生产用 Web 应用程序的数据库分离。最后,可以为未经测试的 Web 应用程序提供一个除 80 之外的端口号。这将降低未经授权的人员可以访问此应用程序的几率,原因是端口号必须包含在任何 Web URL 中(使用端口 80 的网站除外);否则,IIS 将找不到请求的页面。

  • 通常,向小型客户提供 SharePoint Foundation 宿主服务的公司会为每个客户提供客户自己的 SharePoint Foundation Web 应用程序。这样做既可确保一个客户的网站不会因另一个客户的 SharePoint Foundation Web 应用程序中存在错误代码而停止运行,又可确保其他客户无法访问该客户的数据库,同时还使每个客户能够制定有关身份验证和匿名用户的不同策略。

  • 当 Web 应用程序内的所有网站具有类似的结构时可获得更好的性能。例如,"我的网站"集合将具有很多小网站;但工作组网站集合通常具有数量较少的大型网站。在单独的 Web 应用程序中承载工作组网站集可改进这两个集合的性能。

  • 任何给定的 Web 应用程序都可以具有五组单独的安全策略(与可能传入请求的五个可能区域一一对应):Internet、Intranet、Extranet、默认区域和自定义区域。如果需要更多的策略组,则可以创建额外的 Web 应用程序(可能包含与现有 Web 应用程序相同的内容),其中每个 Web 应用程序都具有自己的五组策略。

  • 如果除 SharePoint Foundation 之外还安装了增强的协作服务器软件(如 Microsoft Office SharePoint Server 2007),则该软件可允许对 Web 应用程序进行逻辑分组。例如,该软件可能进行逻辑分组以便在组内提供公用服务或在管理上将组与其他 Web 应用程序分离开来。在此情况下,该软件可能要求创建特殊的 Web 应用程序以用作组的逻辑父级或容器。此逻辑父级称作"共享服务提供程序 (SSP)"。(不过,此类逻辑分组在 IIS 6.0 无法识别,并且未在 SharePoint Foundation 对象模型中建模。对于 IIS,SSP 只是一个网站;而对于 SharePoint Foundation,SSP 只是一个 Web 应用程序。)

备注

在 SharePoint Foundation 中,新的 Web 应用程序是在管理中心的"应用程序管理"选项卡上创建的,而不是在 IIS 中创建的。

SharePoint Foundation 内容数据库

每个 SharePoint Foundation Web 应用程序至少拥有一个内容数据库(由 SPContentDatabase 类表示),此内容数据库是在创建 Web 应用程序时自动创建的。可以根据需要向 Web 应用程序中添加更多内容数据库。内容数据库包含所有数据(列表、列表项、博客文章和评论、Wiki 网页和文档库中的文档)和大多数页面文件,它们构成了属于数据库的网站集。

某些属于网站集的文件将存储在 SharePoint Foundation 部署的前端服务器的文件系统中。乍一看,这似乎可能会损坏网站集作为内容数据库的子集的系统性。不过,即使文件未存储在内容数据库中,它们也由该数据库中的行表示。表示此类文件的表行将用作该文件的一种别名。

SharePoint Foundation 网站集

网站集(由 SPSite 类表示)的存在可为网站所有者、服务器管理员和销售 SharePoint Foundation 宿主服务的企业提供管理上的便利。以下是 SharePoint Foundation 网站集的一些最重要的特征:

  • 与 SharePoint Foundation Web 应用程序相比,SharePoint Foundation 网站集能够为 SharePoint Foundation 部署提供更细化的管理,但特定网站自身的管理仍由网站所有者(他们通常不是 IT 专业人士)负责。

  • 每个网站集有且仅有一个首要网站。对于某些类型的管理任务,最好是将网站集及其首要网站视为单个实体。例如,首要网站的"网站设置"页面中包含一个"网站集管理"区域,首要网站的所有者可在此区域中激活网站集的功能,并从回收站中还原任何已删除的网站集内容。另外,可以在首要网站中创建某些自定义实体(如自定义列)。之后,网站集中的所有网站都可以使用这些实体。

  • 网站集横跨网站所有者的管理责任与网站集管理员(通常不是 IT 专业人士)的管理责任之间的边界。如上一条中所述,一些网站集级别的管理任务将由首要网站的所有者处理。但服务器管理员和网络管理员可以使用管理中心的"应用程序管理"选项卡来创建和删除网站集以及设置网站集的大小配额。

  • 网站集(或严格来说是网站集的首要网站)是痕迹导航中最高级别的对象。(尽管子网站的用户不一定能够访问层次结构中较高级别的每个网站,但他们可以在痕迹导航中看到这些网站。)

  • 由网站集范围和网站范围的功能、内容类型、列表、主题和工作流组成的池在网站集级别进行维护并提供给子网站使用。

  • 网站集是可从中激活 SharePoint Foundation 功能的四个级别之一。其他三个级别为网站、Web 应用程序和场。

  • 用户组是在网站集级别进行维护并分配默认权限的。(可以在任何网站、列表或列表项级别更改这些权限。可以在任何网站的"网站设置"页面上创建组。但不管在何处创建组,该组都将处于网站集级别并且对网站集中的所有网站可用。)

  • 可以在网站集内而不是网站集之间共享母版页和 Web 部件。

  • 网站集是层次结构中最高级别的对象,可以审核对它的访问权。将在此级别维护审核数据库。

  • 网站集是可包含在搜索中的最高级别。

请参阅

引用

SPWebApplication

SPDatabase

SPSite

概念

服务器和网站体系结构:对象模型概述

使用列表对象和集合

概述:使用对象模型自定义管理

代码示例:使用管理对象模型

Microsoft SharePoint Foundation 的内容层次结构

Microsoft SharePoint Foundation 的物理对象层次结构

背景:Microsoft SharePoint Foundation 中的物理对象

Microsoft SharePoint Foundation 的服务层次结构

背景:Microsoft SharePoint Foundation 中的服务实体

其他资源

SharePoint Foundation 管理

Windows SharePoint Services 管理开发资源中心(该链接可能指向英文页面)