特性与功能
Windows Server AppFabric 托管功能通过提供以下功能,增强对 Windows Process Activation Service (WAS) 中 .NET Framework v4 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 服务的托管:
简化 WAS 中托管的 WCF 和 WF 服务的部署和管理
简化耐久工作流的暂留配置
可自定义的跟踪配置文件,使您可以捕获所需的数据
为跟踪数据提供专用、可查询存储
Windows PowerShell cmdlet,使您可以创建自定义管理脚本
可自定义监控托管服务
通过 Windows IPv6 堆栈支持 Internet 协议版本 6 (IPv6)
自动启动应用程序以使服务延迟最小化
备注
此功能要求使用 Windows Server 2008 R2 或 Windows® 7。
AppFabric 缓存功能提供了一个分布式内存中缓存平台,可以开发可缩放、可用和高性能的应用程序。以下是 AppFabric 缓存功能的关键功能:
缓存所有可序列化的 CLR 对象,并提供通过简单缓存 API 的访问
支持企业范围:几十至几百台计算机
可配置为作为通过网络访问的服务运行
支持常规缓存配置
通过添加新节点支持动态缩放
高可用性功能,通过在不同缓存主机上存储缓存数据的副本,支持缓存数据的连续可用性。
自动加载平衡
与管理和监控工具(例如 Windows 事件跟踪 (ETW) 和系统中心)集成。
提供与 ASP.NET 的紧密集成,以在缓存中缓存 ASP.NET 会话数据,无需将数据写入源数据库。还可以作为应用程序数据的缓存使用,通过整个 Web 场缓存应用程序数据。
不支持方案和配置
.NET Framework 4 允许您使用 XAML(可扩展应用程序标记语言,eXtensible Application Markup Language)定义工作流服务。 AppFabric 设计为使用 .NET Framework 4 工作流服务。这包括使用 SVC 文件或通过新的基于配置的激活功能(允许 Web 服务在没有 SVC 文件的情况下激活)激活的工作流服务。有关基于配置激活的详细信息,请参阅基于配置的激活。有关使用 XAML 将工作流定义为服务的详细信息,请参阅 .NET Framework 4 和“Dublin”中的 WCF 和 WF 服务。
但是,在 Windows Process Activation Service (WAS) 中托管的 WCF 和 WF 服务提供 AppFabric 不支持的下列服务激活和配置选项。
不支持属于预编译的 Web 应用程序的服务。预编译是 ASP.NET 用来提高网站性能的机制。当 ASP.NET 编译器工具在第一个请求上遇到 Web 应用程序的资源时,会将用于激活的常用文件类型(如 ASPX 或 SVC)的内容编译到一个程序集中。然后将其替换为自动生成的文本。这可确保即使文件内容不再需要,文件也会保留物理激活输入点(和 URL)。AppFabric 工具依赖分析 SVC 文件内容来发现和管理服务配置。将 SVC 内容替换为 ASP.NET 编译器自动生成的文本之后,AppFabric 不能再使用它来列出和管理这些服务。如前所述,使用 XAML 定义的 .NET Framework 4 Workflow 服务(属于预编译的 ASP.NET 应用程序的一部分)将在 Windows Server AppFabric 中继续工作。有关详细信息,请参阅 ASP.NET 网站预编译。
不支持在运行时使用 RouteTable.Routes.Add() 功能注册和激活的服务。.NET Framework RouteTable 类用于存储应用程序的 URL 路由。当 ASP.NET 应用程序处理请求时,应用程序会迭代通过“路由”属性中的路由集合,以查找与 URL 请求格式匹配的第一个路由。有关详细信息,请参阅 RouteTable 类。
备注
使用 RouteTable 进行服务注册是需要经典 REST 样式 URL 的 RESTful 服务的常见模式。例如,https://server/AutoService/Car/123-345-678。
AppFabric 托管功能
AppFabric 托管功能依靠 WAS 为 WCF 和 WF 服务提供宿主环境,并扩展 IIS 管理控制台,为 WAS 托管的服务提供管理和配置工具。如果您在 WAS 中有已托管的 WCF 或 WF 服务,使用 AppFabric 托管服务可以枚举和管理这些服务。但是,如果服务是在托管的 Windows 服务或独立的应用程序中进行托管,则必须首先将服务迁移到 WAS 宿主环境,才能对这些服务使用 AppFabric 托管功能。
如果您当前正在 WAS 以外的主机中托管服务,我们建议您在决定将服务移动到 WAS 之前,仔细评估 AppFabric 以及 WAS 宿主环境的特性与功能。有关 WCF 和 WF 服务的托管选项的详细信息,请参阅托管服务 (https://go.microsoft.com/fwlink/?LinkId=166423)。
应用程序部署
当前应用程序部署方法包括 Xcopy 的使用或基于 Windows Installer 等技术的部署程序包的使用。Xcopy 将应用程序项目从与虚拟目录相对应的文件夹移动到目标文件夹。部署程序包用来部署其他项目,例如证书、与应用程序池相关联的用户帐户、注册表设置以及数据库数据。虽然现有部署技术适用于单一服务器部署,但 Xcopy 通常过于简单、而创建 Windows Installer 程序包却太过复杂时,可能需要实施特定的开发知识。二者都不适用于出于扩展目的将服务部署到服务器场。
IIS Web 部署工具 MSDeploy 提供了简单的基于程序包的部署功能,该功能可从命令行、IIS 管理控制台或 Visual Studio 2010 进行使用。MSDeploy 还可用来将一台计算机同步到另一台计算机。
有关 MSDeploy 的详细信息,请参阅用于 IIS7 的 Web 部署工具 (https://go.microsoft.com/fwlink/?LinkId=127069)。
应用程序配置
应用程序关键组件的可管理性是指通过应用配置选项,在不更改基础代码的情况下影响应用程序行为的能力。AppFabric 为托管应用程序和服务的配置提供了以下功能:
简单应用程序配置:AppFabric 托管功能使用的引导原则是,仅将 Web.config 文件中的配置设置用于管理目的。无法访问源代码中定义的设置,并且无法使用 AppFabric 管理工具对其进行修改。此原则适用于命令性代码(如 C#)和声明性代码(如 XAML)。即使代码自身容易分辨(例如 XAML),设置仍然被视为锁定状态并且无法进行访问。
若要简化配置管理,AppFabric 将为每个由安装程序配置的服务器节点应用默认设置。这些设置在根 Web.config 文件中定义,并且可由任意托管的应用程序使用。管理员还可以通过站点或应用程序 Web.config 文件应用特定站点或应用程序配置设置,以便为托管的应用程序应用更精确的跟踪或暂留行为。
通过 IIS 管理控制台提供的 WCF 配置选项:当前的 WCF 配置使用的是 WCF 服务配置编辑器工具 (SvcConfigEditor.exe),这对开发人员和 IT 专业人员提出了挑战。特别是服务配置编辑器的使用需要对 WCF 服务模型有相当彻底的了解,这会带来 IT 专业人员方面的额外开销。
AppFabric 通过为 WCF 和 WF 扩展熟悉且具有 IIS Manager 扩展的 IIS 管理控制台,来完成最常见的配置任务,以改进体验。示例包括启用跟踪、定义应用程序终止参数以及枚举所有运行的服务,均可使用 IIS Manager 扩展来完成。通过使用可用于 IIS 7.0 的 AppFabric 配置向导或 IIS 配置编辑器,可应用其他配置选项。
WF 暂留配置:若要为长期运行的业务过程支持耐久工作流的概念,WF 服务可持续进行暂留存储,并在特定事件(例如接收消息)发生时恢复处理。但是,配置暂留主要是一个手动过程,需要创建耐久存储机制支持的暂留服务。
为了简化工作流暂留的配置,支持服务器场配置,AppFabric 托管服务提供了基于 SQL Server 的暂留存储和 SQL 暂留提供程序,可由在 WAS 中托管的任何耐久工作流使用。通过 AppFabric 还可以使用您自己选择的自定义暂留存储和提供程序。AppFabric 允许由所有托管的应用程序继承的默认暂留设置或特定于单独应用程序的暂留设置配置。
Windows PowerShell cmdlet:虽然在 IIS 管理控制台内提供配置和管理选项可以轻松地管理托管的应用程序,但这通常需要创建可自动执行多步骤配置和管理方案的脚本。
为支持创建脚本解决方案,AppFabric 托管功能包括 Windows Powershell 的 ApplicationServer 模块,其中包含的 cmdlet 可以提供对托管应用程序配置和管理的同一级别访问,与 IIS 管理控制台提供的工具具有同样功能。
应用程序监控
除了简化托管服务的部署、管理和配置,AppFabric 托管服务通过捕获运行时发出的跟踪信息并将其存储到监控数据库,使监控应用程序更为简单。一旦捕获,此信息可在 IIS 管理控制台的仪表板功能中使用,或者直接从监控数据库中使用。
从应用程序收集的信息可通过使用跟踪配置文件来进行自定义,使用跟踪配置文件可以捕获信息,例如活动状态(启动、停止和错误)、工作流内特定变量的内容或者应用程序通过使用自定义跟踪记录发出的自定义跟踪信息。
应用程序托管
AppFabric 托管服务结合 WAS 使用,为中间层 WCF 和 WF 应用程序提供可靠的宿主环境。WAS 提供的功能有:
应用程序和工作进程的基于消息的激活。应用程序根据使用 HTTP 和非 HTTP 网络协议到达的传入工作项目动态进行启动和停止。
强大的应用程序和工作进程回收,维护运行应用程序的运行状况。
集中式应用程序配置和管理。
除了通常由 WAS 提供的功能,.NET Framework 4 还在激活托管的服务方面提供了一些增强功能。使用 .NET Framework 3.5 构建的服务激活需要创建一个必须使用此服务进行部署的单独“服务文件”(具有 .svc 扩展名)。此外,如果服务使用 WF,则必须使用此服务创建和部署其他可扩展应用程序标记语言 (XAML) 文件(具有 .xaml 扩展名)。.NET Framework 4 提供了直接激活 WF 服务的方式(无需创建和部署单独的 .svc 文件)。XAML 文件必须具有扩展名 .xamlx,以便由主机直接激活相关联的 WF 应用程序。WCF 和 WF 应用程序可直接从 Web.config 文件激活,并且不要求单独的 .svc 文件。有关 WAS 宿主环境的此功能和其他功能的详细信息,请参阅托管 (https://go.microsoft.com/fwlink/?LinkId=166403)。
虽然简化的托管服务不需要服务文件,但这并没有影响 WAS 所采用的基于消息的激活技术。在 WAS 中托管服务时,将不会创建服务实例,直到接收到递送至该服务的消息。这表示最初服务启动时,必须通过分配内存、加载库以及创建对象等方式初始化新的实例。如果应用程序在处理时间敏感数据,则在启动各个服务中产生的延迟可能无法接受。即使没有处理时间敏感数据,依赖使用基于消息的激活也会限制服务接收数据的方式,因为基于消息的激活要求 WAS 激活器。现成的 .NET 为以下协议提供了激活器:
http:为 IIS 7.0 和 WCF 提供了 HTTP 激活。
net.tcp:提供了基于 TCP 端口的激活。
net.pipe:提供了基于命名管道的激活。
net.msmq:使用基于 WCF 的消息队列 (MSMQ) 应用程序。
msmq.formatname:为向后兼容提供了现有的 MSMQ 应用程序。
若要解决基于消息的激活的限制,AppFabric 托管服务可以利用 Windows Server 2008 R2 和 Windows 7 提供的 IIS 自动启动功能,在进行了部署以后自动启动托管 WAS 服务,而不是等待激活消息。
AppFabric 缓存功能
AppFabric 缓存服务合并多台计算机的内存,为应用程序提供一个统一的缓存视图。应用程序可以存储任意可序列化的 CLR 对象,而无需担心对象所存储的位置。可根据需要简单添加更多计算机实现可伸缩性。AppFabric 缓存服务还允许通过群集存储数据副本,以防止数据失败。AppFabric 缓存服务包括 ASP.NET 会话提供程序对象,使 ASP.NET 会话对象能够存储在分布式缓存中,而无需写入数据库。这将增强 ASP.NET 应用程序的性能和可伸缩性。
有关 AppFabric 缓存功能的详细信息,请参阅 Windows Server AppFabric 缓存简介 (https://go.microsoft.com/fwlink/?LinkId=164828)。
2011-12-05