在 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 平台安装程序 (Web PI) 或 Web 部署 MSI 来安装 Web 部署。

  • 使用 Web 平台安装程序 (Web PI) 安装 Web 托管提供程序的建议服务器配置,其中包括 Web 部署
  • 使用 Web PI 单独 (安装 Web 部署,无论是否具有其依赖项)
  • 使用 Web 部署安装程序。

当 Web 平台安装程序安装适用于 Web 托管提供程序的建议服务器配置时,它会使用 Web 托管提供程序最常见的部署来配置 Web 服务器。 此包可确保安装 Web 部署所需的 IIS 8.0 或更高版本先决条件。 SQL Server管理对象和SQL Server等依赖项会自动选择进行安装,并随 Web PI 先决条件(如 Web 服务管理处理程序)一起安装。 包包含一些可选组件,例如 PHP 和 MySQL,你可以通过单击它们旁边的 X 来选择不随此捆绑包一起安装这些组件。

可以在 Windows 2012 Server 或更高版本上安装适用于 Web 托管提供程序的建议服务器配置。 有关在早期版本的 Windows Server 上安装 IIS 7 的信息,请参阅 在 IIS 7 上安装和配置 Web 部署

  1. 下载 Web 平台安装程序
  2. 打开 Web PI。
  3. 在 Web PI 中,单击右上角的搜索栏,在 “搜索”中输入“推荐”,然后按 Enter
  4. 选择“ Web 托管提供程序的建议服务器配置”,然后单击“ 添加”。Web 平台安装程序四点六的屏幕截图。突出显示了“Web 托管提供程序的建议服务器配置”选项。
  5. 单击“安装” 。
  6. “先决条件 ”页上,单击“ 我接受”。
  7. 安装完成后,单击“ 完成”。

使用 Web 平台安装程序单独安装 Web 部署

可以单独安装 Web 部署及其依赖项,例如 Web 管理服务 (WMSvc) 。 可以安装以下版本的 Web 部署。

  • 不带捆绑 SQL 的 Web 部署 3.5:单独安装 Web 部署。
  • Web 部署 3.5:Web 部署加上对 SQL 数据库发布的支持
  • 用于托管服务器的 Web 部署 3.5:Web 部署加上 IIS/ASP.NET 依赖项,并支持 SQL 数据库发布。 这包括非管理员发布) 和 PowerShell 2.0 或更高版本所需的安装基本 IIS 和管理服务 (依赖项, (用于在安装) 期间执行一些基本的非管理员发布设置。

如果直接在 Web PI 中安装 Web 部署,而不是作为建议的 Web 托管提供程序服务器配置的一部分,则可能无法安装 Web 部署所需的依赖项。

使用 Web PI,可以在 Windows 2012 Server 或更高版本或 Windows 8.0 或更高版本上安装 Web 部署。 有关在早期版本的 Windows Server 或具有 IIS 7 的 Windows 上安装的信息,请参阅 在 IIS 7 上安装和配置 Web 部署

使用 Web PI 单独安装 Web 部署:

  1. 下载 Web 平台安装程序
  2. 在桌面上打开 WebPI。
  3. 单击右上角的搜索栏,输入“Web 部署”,然后按 Enter
    Web 平台安装程序四点六的屏幕截图。突出显示了适用于 Node 点 J S 的 Windows Azure S D K。
  4. 选择所需的 Web 部署,然后单击“ 添加”。
    Web 平台安装程序四点六的屏幕截图。突出显示了 Web 部署三点五。
  5. “先决条件 ”页上,单击“ 我接受”。
  6. 安装完成后,单击“ 完成”。

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

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

  • MSI 不会 (SMO) 安装 SQL 共享管理对象,这是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 部署发布”部署选项在 IIS 管理器中不可用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 单击“ 选择要授予发布权限的用户”的向下箭头,然后选择为 IIS 管理器权限输入的用户。“配置 Web 部署发布”窗格的屏幕截图。在“选择要授予发布权限的用户”下,突出显示文本 C O N T O S 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 S O 反斜杠 john doe。显示“设置”按钮。

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

要求:

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

排查常见问题:

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

  • net stop msdepsvc & net start msdepsvc

  • net stop wmsvc & net start wmsvc

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

  • 必须使用内置管理员帐户运行 MsDepSvc,或者从已添加到管理员组的域帐户运行 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