在 IIS 8.0 或更高版本上安装和配置 Web 部署

作者:Jim van de Erve

总结

在本演练中,我们将展示为 IIS 8.0 或更高版本安装和配置用于管理员或非管理员部署的 Web 部署的步骤。 这意味着使客户端能够使用 Web 部署将网站内容发布到服务器所需的步骤,即使客户端没有服务器的管理员凭据也可以。

Windows 8.0 和 8.1 不附带远程连接所需的 Web 管理服务。 有关详细信息,请参阅无法在 Windows 8.0 或 8.1 上设置远程发布

安装 Web 部署

可以使用 Web 部署 MSI 安装 Web 部署。

使用 Web 部署安装程序安装 Web 部署

可以使用 MSI 安装程序直接安装 Web 部署。 通常不建议新手用户使用 MSI,因为建议或必需的依赖产品可能需要单独安装。 使用 MSI 而不是 Web PI 在服务器上安装 Web 部署时,以下限制可能会造成问题:

  • MSI 不会安装 SQL 共享管理对象 (SMO),而这是 SQL Server 数据库部署所必需的。 可以使用 Web PI 安装此组件以启用 SQL Server 数据库部署。
  • 如果未安装 Web 管理服务,MSI 将不会安装 Web 管理服务处理程序组件。 非管理员部署需要处理程序组件。 应首先安装 Windows 组件 IIS(包括管理服务)以使处理程序组件能够安装。
  • 使用 Web 部署 MSI 直接安装 Web 部署时,除非安装了 PowerShell v2 或更高版本,否则不会为非管理员部署配置 Web 管理服务。

使用 Web 部署安装程序,可以在 Windows 2012 Server 或更高版本或 Windows 8.0 或更高版本上安装 Web 部署。

若要从 .msi 文件安装 Web 部署,请执行以下操作:

  1. 转到 Web 部署下载页。
  2. 在“Web 部署下载”页上,转到“下载 Web 部署”部分,对于所需语言,请选择“x86”或“x64”
  3. 运行 Web 部署 .msi,并按照安装程序向导进行操作,在“自定义安装”页中选择所需的功能。Microsoft Web 部署三点五安装对话框的屏幕截图。将显示“自定义设置”页。突出显示了 I S Manager U I 模块。

为委派的非管理员部署配置站点

安装 Web 部署后,非管理员发布的所有服务器级配置就都完成了;但在站点级别需要额外的配置。 可以使用 PowerShell 或 IIS 管理器完成此站点配置,如下所示。

无法在 Windows 8.0 或 8.1 上设置远程发布

不能使用 Web 部署为托管于 Windows 8.0 或 8.1 上的 IIS 的网站设置远程发布。 原因是 Windows 的客户端 SKU 不附带远程连接所需的 Web 管理服务。 因此,在 Windows 8.0 或 8.1 上,IIS 管理器中配置远程发布所需的 IIS 管理器权限图标和“配置 Web 部署发布部署”选项不可用。

当使用“添加角色和功能”向导在 Windows Server 2012 或更高版本上安装管理服务角色时,将安装并启用 Web 管理服务。 IIS 管理器权限图标对 IIS 管理器管理区域中的网站可用,“部署”菜单中的“配置 Web 部署发布”部署选项对于 IIS 管理器中网站的可用。 借助这些功能,Web 管理服务允许你使用 Web 部署从远程计算机配置发布到 Web 服务器。

使用 PowerShell 为非管理员配置 Web 部署

  1. 使用 Web 部署 PowerShell 脚本为新的或现有的非管理员用户创建新站点或设置对现有网站的权限。 有关详细信息,请参阅用于自动执行 Web 部署设置的 PowerShell 脚本Web 部署 PowerShell Cmdlet

使用 IIS 管理器为非管理员配置 Web 部署

以下步骤使用 IIS 管理器 UI 为现有用户配置现有站点上的发布。

  1. 启动 IIS 管理器(打开“服务器管理器”,单击“工具”,然后打开“IIS 管理器”

  2. 展开“站点”节点并单击一个站点。

  3. 在站点主窗格的“管理”区域中,双击“IIS 管理器权限”I S 管理器的 Internet 信息屏幕截图。“站点”节点显示在左窗格中。已选择“I I S 管理器”图标。

  4. 在“操作”窗格中,单击“允许用户...”。 “I S 管理器权限”窗格的屏幕截图。右侧显示“操作”窗格。“允许用户”按钮位于“操作”窗格中。

  5. 在“允许用户...”对话框中,选中“Windows”,单击“选择”。“允许用户”对话框的屏幕截图。已选择 Windows。

  6. 在“选择用户或组”对话框中,在“输入要选择的对象名称”字段中,输入将获得站点发布权限的非管理员 Windows 用户的名称(以及域)。 单击“检查名称”,然后在验证名称后,单击“确定”“选择用户或组”对话框的屏幕截图。在“选择对象类型”框和“从此位置”框中找到要选择的对象名称的框。

  7. 在“允许用户...”对话框中,单击“确定”“允许用户”对话框的屏幕截图。已选择 Windows。在 Windows 框中,有文本 C O N T O S O 反斜杠 john doe。可以在底部找到 O K 按钮。

  8. 验证是否在“IIS 管理器权限”窗格中输入了名称以及域。“I S 管理器权限”窗格的屏幕截图。在“名称”下是文本 C O N T O S O 反斜杠 john doe。在“路径”下是默认网站。

  9. 右键单击要配置的站点,指向“部署”,然后单击“配置 Web 部署发布...”。系统将显示以下 UI:

    注意:如果站点菜单中未显示“部署”命令,请关闭并重新打开 IIS 管理器。

    “配置 Web 部署发布”对话框的屏幕截图。在“选择要授予发布权限的用户”下,文本 C O N T O 反斜杠 john doe。

  10. 单击“选择一个用户以授予发布权限”的下拉箭头,然后选择为 IIS 管理器权限输入的用户。“配置 Web 部署发布”窗格的屏幕截图。在“选择用户以授予发布权限”下,突出显示文本 C O N T O O 反斜杠 john doe。

  11. 单击“设置”。

    将显示以下日志行:

  • 已为“NonAdminUser”启用发布
  • 已授予“NonAdminUser”对 C:\inetpub\wwwroot\test 的完全控制
  • 已成功创建设置文件 C:\Users\janedoe\Desktop\CONTOSO\_johndoe\_Default Web Site.PublishSettings

非管理员 Windows 用户 (NonAdminUser) 现在可以发布到站点。

“配置 Web 部署发布”对话框的屏幕截图。在“选择要授予发布权限的用户”下,文本 C O N T O 反斜杠 john doe。将显示“设置”按钮。

为管理员部署安装和配置 Web 部署

要求:

使用上述过程之一安装 Web 部署。

故障排除常见问题:

  • 如果要升级 Web 部署的现有安装,请确保通过在管理命令提示符处运行以下命令来重启处理程序和代理服务:

  • net stop msdepsvc & net start msdepsvc

  • net stop wmsvc & net start wmsvc

  • 确保防火墙允许连接到你正在使用的服务。 Web 部署代理服务 (MsDepSvc) 默认在端口 80 上侦听,Web 管理服务(WmSvc,也称为“处理程序”)默认在端口 8172 上侦听。

  • 必须使用内置 Administrator 帐户或已添加到管理员组的域帐户运行 MsDepSvc。 不是内置帐户的本地管理员将不适用于 MsDepSvc。

  • 检查是否已向 IIS 注册 .NET 4.0:

    症状:.NET 4.0 已安装,但 IIS 中没有 .NET 4.0 应用程序池或处理程序映射。 发布使用 .NET 4.0 的应用程序(例如,基于 WebMatrix 的站点模板应用程序的应用程序)后,无法浏览到它们。

    原因:在安装 IIS 之前,计算机已安装 .NET 4.0。

    解决方案:运行以下命令,将 .NET 4.0 注册到 IIS:%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru