服务管理服务

Windows Server AppFabric 提供用于运行和管理 WCF 和 WF 服务的环境。服务管理服务通过为客户端提供远程启动服务的能力来进一步增强 AppFabric 管理功能。服务管理服务是一种 WCF 服务,AppFabric 会自动将该服务添加到启用了 serviceManagement 属性的所有应用程序中。

服务管理服务支持的方案

服务管理服务支持以下主要方案。

激活工作流服务实例

工作流管理服务 (WMS) 调用服务管理服务 (SMS) 以激活具有挂起工作的工作流服务实例。SMS 激活工作流服务主机,该主机创建实例存储(例如 SQL 工作流实例存储)并调用存储中的方法,以将实例存储中的工作流服务实例加载到内存中。有关实例激活的详细信息,请参阅Workflow Management Service

Important要点
工作流管理服务需要为包含该服务的应用程序启用 net.pipe 协议,并且需要为包含该服务的站点启用 net.pipe 绑定。

按计划启动服务

在此方案中,自定义计划程序根据用户创建的计划来启动应用程序中的服务。例如,服务可能需要每天处理一批工作项目。请注意,“服务管理服务”功能将启用此方案,但不提供自定义计划程序。

配置

AppFabric 安装将以下服务激活参数添加到根 Web.config,这些参数是在为启用了 serviceManagement 属性的每个应用程序激活服务管理服务时需要使用的。

<system.serviceModel>
    <serviceHostingEnvironment>
        <serviceActivations>
            <add relativeAddress="~/ServiceManagement.svc" service="Microsoft.ApplicationServer.Hosting.Management.ServiceManagement" factory="Microsoft.ApplicationServer.Hosting.Management.ServiceManagementFactory, Microsoft.ApplicationServer.Hosting, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </serviceActivations>
    </serviceHostingEnvironment>
</system.serviceModel>

服务管理服务仅支持用于绑定的 net.pipe 协议。添加到应用程序的服务管理服务的地址应符合以下地址模式:{scheme}://hostname:port/<应用程序>/ServiceManagement.svc。例如:net.pipe://localhost/VirtualApplicationB/ServiceManagement.svc。

警告

Windows Server AppFabric 安装假设将 .svc 扩展映射到根 Web.config 中的 WCF HTTP 处理程序。如果您将 .svc 扩展映射到除 WCF HTTP 处理程序之外的某个处理程序,则服务管理服务 (SMS) 将无法初始化。如果您将某些其他扩展映射到 WCF HTTP 处理程序,则将 SMS 的扩展从 .svc 更新到根 Web.config 中的扩展。请注意,如果您在应用程序级别替代 .svc 处理程序映射,则此解决方法将不起作用。

默认情况下启用“服务管理服务”功能。AppFabric 安装通过将 serviceManagement 元素添加到根 Web.config 并将该元素的 enabled 属性设置为 true 来启用该功能。应用程序、虚拟目录和服务级别可继承这些设置。因此,将为安装了 AppFabric 的计算机上的所有应用程序启用 serviceManagement 属性。

<microsoft.applicationServer>
    <hosting>
        <serviceManagement enabled=”true” endpointConfiguration=”” authorizedWindowsGroup=”AS_Administrators” />
    </hosting >   
</microsoft.applicationServer>

下表提供对 serviceManagement 元素的属性的描述。

属性 描述

已启用

默认情况下,在根 Web.confighe 中,AppFabric 安装程序将此属性设置为 true

authorizedWindowsGroup

有权访问服务管理服务公开的终结点的 Windows 组。AppFabric 安装程序将 AS_Administrators 设置为授权 Windows 组。应用程序运行时所使用的标识也有权访问该终结点。

endpointConfiguration

引用根 Web.config 中 standardEndpoints 部分中定义的标准服务管理终结点。此属性的默认值为 ServiceManagementNetPipeEndpoint。

// fragment from root Web.config 
<serviceManagement endpointConfiguration="ServiceManagementNetPipeEndpoint" enabled="true" authorizedWindowsGroup="AS_Administrators" />

可以通过向应用程序 Web.config 添加以下配置以禁用应用程序的服务管理。

<serviceManagement enabled=”false” />

可以通过向应用程序 Web.config 添加以下配置以完全删除服务管理服务。

<serviceActivations>
     <remove relativeVirtualPath=”~/ServiceManagement.svc” />
</serviceActivations>

备注

服务管理服务内部使用 ServiceHostingEnvironment.EnsureServiceAvailable 方法。此方法不支持使用 ASP .NET 路由路径来激活服务。因此,服务管理服务不支持此激活方案。

另请参阅

概念

如何:使用 Service Management Service

  2011-12-05