使用 IIS Manager 配置自动启动
本主题包含使用 IIS Manager 为应用程序和服务启用自动启动的过程。还包含为网站启用 net.pipe 绑定和为应用程序启用 net.pipe 协议的过程。
为应用程序启用自动启动
依次单击“开始”、“所有程序”、“Windows Server AppFabric”和“Internet 信息服务(IIS)管理器”,打开 IIS Manager。
在“连接”窗格中,打开包含该应用程序的服务器和站点,然后选择该应用程序。
在“操作”窗格中,单击该窗格中“管理 WCF 和 WF 服务”标题下的“配置”,或者,右键单击该应用程序,指向“管理 WCF 和 WF 服务”,然后单击“配置”。
在“为应用程序配置 WCF 和 WF”对话框中,单击“自动启动”。
要点 仅 Windows 7 或 Windows Server 2008 R2 及更高版本提供了自动启动配置功能。如果您的系统未安装这些操作系统,则无法配置自动启动,除非升级到其中一个系统。 在“自动启动”对话框中,单击“已启用”为应用程序中的所有服务启用自动启动,单击“自定义”为应用程序中的各服务单独启用自动启动;或者,单击“已禁用”确保应用程序中的所有服务均不自动启动。
如果应用程序的应用程序池未被设置为 AlwaysRunning,则会显示一个弹出对话框,显示以下消息:“需要将此应用程序/服务的应用程序池的 startMode 设置为 AlwaysRunning,该应用程序/服务才能成功自动启动。您希望在应用更改时设置应用程序池的 startMode 吗?”单击“是”将应用程序池的 startMode 设置为 AlwaysRunning,然后单击“确定”。
仅当将应用程序所使用的应用程序池的 startMode 设置为 AlwaysRunning 时,该应用程序的自动启动功能才会起作用。单击此对话框上的“确定”会将应用程序使用的应用程序池的 startMode 值设置为 AlwaysRunning。也可以使用 IIS 配置编辑器设置此属性。请注意,将应用程序池的 startMode 设置为 AlwaysRunning 将重新启动应用程序池中的所有应用程序。
单击“确定”。
应用程序的自动启动设置未在该应用程序的 Web.config 文件中定义,而是在服务器的 ApplicationHost.config 文件中作了定义。虽然是在应用程序级别显示的配置对话框中为应用程序本地配置自动启动设置,但这些设置位于 ApplicationHost.config 文件中。下面是示例配置:
<application path="/MyWorkflowService" applicationPool="MyWorkflowServiceAppPool" enabledProtocols="http,net.pipe" serviceAutoStartEnabled="true" serviceAutoStartProvider="Service" serviceAutoStartMode="All">
启用应用程序中所有服务的自动启动会将 applicationHost.config 文件中应用程序的 serviceAutoStartMode 属性的值设置为“all”。将模式设置为“自定义”会将 serviceAutoStartMode 属性设置为值“custom”。如果应用程序已在运行(即已启用协议),则上述任一操作都会在 ApplicationHost.config 文件中向值“true”添加 serviceAutoStartEnabled 集。如果应用程序未运行,serviceAutoStartEnabled 会被设置为 false(以便特意停止的应用程序不会意外启动)。
要点 应用程序池的 autoStart 属性和 startMode 属性是不同的。startMode 属性是 Microsoft AppFabric 1.1 for Windows Server 使用的自动启动功能之一。“编辑应用程序池”对话框中的“立即启动应用程序池”设置或应用程序池的“高级设置”对话框中的“自动启动”设置用于配置 autoStart 属性,而非 startMode 属性。 警告
请确保应用程序池配置为使用集成的托管管道模式并且使用 .NET Framework v4。
启用服务的自动启动
依次单击“开始”、“所有程序”、“Windows Server AppFabric”和“Internet 信息服务(IIS)管理器”,打开 IIS Manager。
在“连接”窗格中,打开包含该应用程序的服务器和站点,然后选择该应用程序。
根据需要为应用程序设置自动启动值。要为服务启用自动启动,必须将自动启动模式设置为“自定义”,并将应用程序池的 startMode 设置为 AlwaysRunning。有关详细信息,请参阅本主题中的“为应用程序启用自动启动”部分。
在“功能视图”中,双击“服务”图标。
选择要为其启用自动启动的服务,然后在“操作”窗格中,单击“配置”,或右键单击该应用程序,然后单击上下文菜单中的“配置”。
在“配置服务”对话框中,单击“自动启动”。
在“自动启动”对话框中,单击“启用”为服务启用自动启动。如果为服务启用自动启动,会在应用程序 Web.config 文件中将 serviceAddress 行添加到该服务的 serviceAutoStart 属性。下面是示例配置:
<microsoft.applicationServer> <hosting> <serviceAutoStart> <add relativeVirtualPath="Service1.xamlx" /> </serviceAutoStart> </hosting> </microsoft.applicationServer>
如果服务所属的应用程序的自动启动模式被设置为“已禁用”,则“启用”复选框将被清除且不可用。如果该应用程序的自动启动模式被设置为“已启用”,则“启用”复选框将处于选中状态,且不可用。您必须先将应用程序的自动启动模式设置为“自定义”,然后才能为服务启用自动启动。如果已启用或禁用该应用程序的自动启动,则该应用程序中所有服务的自动启动设置都将继承该应用程序的自动启动设置。要为应用程序设置自动启动,请返回本主题前面的“为应用程序启用自动启动”一节。
单击“确定”。
备注
如果在网站的根目录(而非虚拟目录)中添加服务,则该服务将与默认应用程序(而非自定义应用程序)关联。当服务与默认应用程序关联时,您将无法在 IIS Manager 扩展中为该服务配置自动启动,因为默认应用程序的自动启动模式被设置为“已禁用”且无法更改。
使用 IIS Manager 设置应用程序池的 startMode 属性
在 IIS Manager 中,单击“连接”窗格中的计算机名称。
如果视图未处于活动状态,则切换到“功能视图”。
在“功能视图”的“管理”部分中双击“配置编辑器”。
单击“部分”字段的向下箭头,展开 system.applicationhost,然后单击“应用程序池”。
单击“(集合)”,然后单击显示计数的字段旁边的省略号 (…)。
在“集合编辑器”中,选择您要为其配置 startMode 属性的应用程序池。
在底部的“属性”窗口中,将 startMode 属性的值设置为 AlwaysRunning。
在站点级别启用 net.pipe 绑定的步骤
-
备注
Microsoft AppFabric 1.1 for Windows Server 自动将服务管理服务、WCF 服务添加到启用了 serviceManagement 属性的所有应用程序。默认情况下,此属性处于启用状态。此服务要求为网站启用 net.pipe 绑定并为应用程序启用 net.pipe 协议。如果未启用这些设置,自动启动功能将无法启动此服务,并且您将在事件日志中看到错误消息。有关该服务的详细信息,请参阅服务管理服务。
右键单击 IIS Manager 中的站点名称,单击“编辑绑定”以启动“站点绑定”对话框。
如果您在“站点绑定”对话框中未看到 net.pipe 绑定,请单击“添加”以启动“添加站点绑定”对话框。
在“添加站点绑定”对话框中,为“类型”字段选择 net.pipe,并为“绑定”字段键入 *。
单击“确定”以关闭“添加站点绑定”对话框,然后单击“关闭”以关闭“站点绑定”对话框。
为应用程序启用 net.pipe 协议的步骤
在 IIS Manager 中,右键单击包含服务的应用程序的名称。
指向“管理应用程序”,然后单击“高级设置”以启动。
在“高级设置”对话框中,将 ,(逗号)字符后跟 net.pipe 添加到“已启用的协议”字段值中。
单击“确定”以关闭“高级设置”对话框,然后单击“关闭”以关闭“站点绑定”对话框。
注意
为了能够启用或禁用自动启动,必须满足以下条件:
必须使用 Windows 7 或 Windows Server 2008 R2 操作系统。其他操作系统(如 Windows Vista 或 Windows Server 2008 R2 之前的版本)上无自动启动选项卡。
如果使用 IIS Manager 远程配置应用程序的自动启动,则必须在服务器级别(而非站点或应用程序级别)进行连接。只有这样,才能将设置应用到服务器级别的 ApplicationHost.config 文件(对于应用程序必须这样做)。(请注意,无论远程连接的级别如何,您都可以配置服务的自动启动。)
如果在应用程序级别启用自动启动,则仅当应用程序所使用的应用程序池的 startMode 被设置为 AlwaysRunning 时,该应用程序的自动启动才会生效。
仅当为包含服务的应用程序启用了自动启动,且应用程序模式被设置为自定义时,您才能在服务级别配置自动启动。如果应用程序模式被设置为全部(已为应用程序启用自动启动),则该应用程序中所有服务的自动启动设置都将继承该应用程序的自动启动设置。如果为服务启用自动启动,且相应应用程序池的 startMode 未被设置为 AlwaysRunning,则会出现一条警告,指示必须将该应用程序池的 startMode 设置为 AlwaysRunning。
如果在网站的根目录(而非虚拟目录)中添加服务,则该服务将与默认应用程序(而非自定义应用程序)关联。当服务与默认应用程序关联时,您将无法在 IIS Manager 扩展中为该服务配置自动启动,因为默认应用程序的自动启动模式被设置为“已禁用”且无法更改。
IIS Manager 中网站的“高级设置”对话框包含一个名为“自动启动”的属性。必须将此属性设置为 True,才能启动关联的应用程序池。如果将其设置为 False,则无论是否为应用程序池启用了自动启动,该应用程序池都不会启动。但是,如果“自动启动”被设置为 True,则可以启用(设置为 AlwaysRunning)或禁用应用程序池的自动启动。将“自动启动”设置为 True 并不能保证该应用程序池会自动启动。为了确保其自动启动,您必须启用应用程序池的自动启动,同时确保将“自动启动”设置为 True。
Microsoft AppFabric 1.1 for Windows Server 自动将服务管理服务、WCF 服务添加到启用了 serviceManagement 属性的所有应用程序。默认情况下,此属性处于启用状态。此服务要求为网站启用 net.pipe 绑定并为应用程序启用 net.pipe 协议。如果未启用这些设置,自动启动功能将无法启动此服务,并且您将在事件日志中看到错误消息。有关该服务的详细信息,请参阅服务管理服务。
2012-03-05