配置 Web 部署处理程序

作者:Faith A

本指南概述了在托管服务器上配置 Web 部署处理程序并测试用户可以向网站部署应用程序的步骤... 此设置将使用本文档中的信息将 Web 部署工具安装到新服务器上并配置建议的设置。

先决条件

本指南要求满足以下先决条件:

  • .NET Framework 2.0 SP1 或更高版本
  • Web 部署工具 1.0 或 1.1
  • 装有 Web 管理服务 (WMSvc) 的 IIS 7 或更高版本

注意:如果尚未安装 Web 部署工具,请参阅安装 Web 部署工具

了解 Web 部署处理程序

该处理程序已与 Windows Server 2008 上的 IIS 7.0 和 Windows 2008 R2 上的 IIS 7.5 附带的 Web管理服务 (WMSVC) 集成。

首先,必须为用户创建帐户(IIS 管理器用户或 Windows 帐户)。 有关创建 IIS 管理器用户帐户的详细信息,请参阅在 IIS 中配置远程管理员管理和功能委派

其次,必须授权用户使用 WMSVC 连接到其网站。 可以使用 IIS 管理器中的 IIS 管理器权限功能向用户授予远程连接到其网站的权限。

第三,用户还必须获得使用 Web 部署工具执行部署的授权。 可以使用 IIS 管理器中的管理服务委派功能创建委派规则,允许用户对其网站执行部署,而不允许其他人执行部署。

下图说明了在将部署请求路由到处理程序并根据处理程序自身的规则进行授权之前,用户如何首先连接到 WMSVC 并由其进行授权。 本快速入门指南将帮助你设置所需的规则,以允许用户部署包含内容的 IIS 应用程序、设置文件权限和部署数据库。

在将部署请求路由到处理程序并针对处理程序自己的规则进行授权之前,用户首次连接到 W M S V C 授权的关系图。

第 1 部分 - 配置 WMSVC 和 IIS 管理器权限

  1. 在 Windows Server 2008 服务器上安装 IIS 和 Web 管理服务。
  2. 配置 WMSVC,以允许远程连接。
    a. 打开 IIS 管理器。
    b. 选择服务器节点。
    c. 在服务器的“功能视图”中,双击“管理服务”图标。
    d. 确保选中“启用远程连接”复选框。 如果该复选框未选中并呈灰显状态,请使用“操作”窗格停止 WMSvc 服务。 这将允许你选中该复选框。
    e. 在右侧的“操作”窗格中,单击“启动”。 “启用远程连接”复选框将选中并呈灰显状态。
  3. 为运行 WMSvc 的帐户(例如本地服务)授予对客户目录的完全控制权限。
  4. 为用户创建网站后,允许用户访问其网站。
    a. 打开 IIS 管理器。 b. 选择用户将远程管理的网站
    c. 在“功能视图”中,双击“IIS 管理器权限”图标。 d. 在“IIS 管理器权限”页上的“操作”窗格中,单击“允许用户”。
    e. 在“允许用户”对话框中,选择用户类型(Windows 或 IIS 管理器),然后单击“选择”以选择用户的帐户。
    f. 单击“确定”关闭“允许用户”对话框。

有关 IIS 管理器用户帐户的详细信息,请参阅允许 IIS 管理器用户帐户连接到站点或应用程序 (IIS 7)

第 2 部分 - 为 Web 部署用户创建委派规则

  1. 如果尚未这样做,请下载 Web 部署工具并将其安装在 Web 服务器上。
  2. 为要允许用户拥有的 Web 部署功能(提供程序)创建委派规则。 若要允许用户将应用程序和内容部署到其网站,请执行以下操作:
    a. 打开 IIS 管理器。
    b. 选择服务器节点。
    c. 在服务器的“功能视图”中,双击“管理服务委派”图标。
    I S 管理器的功能视图的屏幕截图。突出显示了“THe 管理服务委派”图标。
    d. 在右侧的“操作”窗格中,单击“添加规则…“管理服务委派”页中“操作”窗格的屏幕截图。突出显示了“选择规则模板”。”。
    e. 选择“部署包含内容的应用程序”规则模板。 此模板可创建一个规则,允许任何 WMSVC 授权用户使用 Web 部署 contentPath 和 iisApp 提供程序将应用程序部署到其用户范围。
    “选择规则模板”对话框的屏幕截图。突出显示了“部署包含内容的应用程序”。
    f. 单击“确定”以打开该模板。
    g. 单击“确定”创建规则 。
    h.如果该值不存在,请单击“添加行”。 在“将用户添加到规则”对话框中,键入星号 (*)。 这将允许每个用户将应用程序部署到其用户范围。

注意:如果要执行仅限管理员的同步,请转到“管理服务委派”页。 在“操作”窗格中,单击“编辑功能设置”,然后选择“允许管理员绕过规则”。

将文件夹标记为应用程序规则

  1. 若要允许每个用户在其网站中创建应用程序,请执行以下操作:
    a. 单击“添加规则...”b. 选择“将文件夹标记为应用程序”规则模板。 此模板允许所有 WMSVC 授权用户使用 Web 部署 createApp 提供程序在其用户范围内创建应用程序。 应用程序将从父级继承所有设置,包括应用程序池。 c. 单击“确定”以打开该模板。
    d. 在“运行方式”部分中,为“标识类型”选择“SpecificUser”,然后单击“设置...”按钮以指定将执行此操作的用户帐户。 为了使此规则正常工作,该规则必须作为有权写入 applicationHost.config 文件的用户运行。 建议创建一个不属于管理员组的帐户(例如“CreateAppUser”),并仅向其授予所需的最低权限。 要执行此操作:

    • 创建用户帐户。
    • 授予对 %windir%\system32\inetsrv\config 的读取权限。
    • 授予对 %windir%\system32\inetsrv\config\applicationHost.config 的修改权限。
  2. 在“将用户添加到规则”对话框中,键入星号 (*)。 这允许每个用户在其网站中创建应用程序。

部署数据库规则

  1. 若要允许用户将数据库部署到其网站,请执行以下操作:
    a. 单击“添加规则...”b. 选择“部署数据库”规则模板。 此模板允许任何 WMSVC 授权用户(如第 1 部分所述)将数据库部署到 SQL 数据库服务器。 c. 单击“确定”以打开该模板。
    d. 添加一个要授权的路径,例如 Server=Server1,以允许任何人使用其 SQL 凭据部署到此服务器,或者添加 Server=Server1;Database={userName}_db1 以限制为与用户名匹配的特定数据库。
    e. 单击“确定”创建规则 。
  2. 在“将用户添加到规则”对话框中,键入星号 (*)。 这将允许每个用户将数据库部署到其网站。

设置权限规则

  1. 若要允许每个用户将应用程序和内容部署到其网站,请执行以下操作:
    a. 单击“选择规则模板...”b. 选择“设置权限”规则模板。 此模板允许任何 WMSVC 授权用户在文件系统上设置 ACL。 c. 单击“确定”以打开该模板。
    d. 单击“确定”创建规则 。
  2. 在“将用户添加到规则”对话框中,键入星号 (*)。 这将允许每个用户在其网站内部署应用程序和内容。

(可选)为 WMSvc 启用跟踪

如果要为 WMSvc 启用跟踪,请参阅配置 Web 管理服务跟踪。 跟踪日志存储在 %systemdrive%\inetpub\logs\wmsvc\tracinglogfiles\w3svc1 中。

第 3 部分 - 测试用户对网站的连接

  1. 在安装了 IIS 远程管理器的客户端计算机上下载并安装 Web 部署工具,或使用本地服务器。 建议先测试本地服务器,以隔离可能由网络、防火墙或代理设置引起的任何问题。
  2. 使用为用户创建的凭据测试与用户网站的连接:
    a. 打开 IIS 管理器。
    b. 右键单击“起始页”节点。
    c. 选择“连接到站点...”(注意:不要选择“连接到服务器”)
    d. 在“服务器名称”文本框中,键入 localhost
    e. 在“网站名称”文本框中,输入为远程管理启用的用户网站的名称。
    f. 单击 “下一步”
    g. 在“用户名”文本框中,输入你为网站授权的用户。
    h.如果该值不存在,请单击“添加行”。 在“密码”文本框中,输入用户的密码。
    i. 单击“下一步”以完成连接。 如果使用不受信任的证书或自签名证书,则系统可能会提示你信任该证书。 IIS 管理器的右下角将显示新的连接状态(例如 localhost 8172 作为 SampleUser)。
  3. 创建快速应用程序包以验证授权规则是否正常工作:
    a. 在“操作”窗格中,单击“导出应用程序...”。
    b. 这将启动“导出应用程序”向导,单击“下一步”以浏览所有屏幕,接受默认值并创建包。
  4. 创建包后,请验证是否可以安装它:
    a. 在“操作”窗格中,单击“导入应用程序...
    b. 单击 “下一步” 。 c. 在“参数”页上,将应用程序名称更改为网站中尚不存在的内容,以验证用户是否可以创建应用程序。
    d. 完成该向导。
  5. 最后,应下载应用程序包以将应用程序安装到此网站,以验证数据库和其他选项是否正常工作。

故障排除

部署期间可能会出现一些常见问题:

用户在尝试连接到网站时收到 401 未经授权错误。

  • 原因:此错误来自 WMSVC,通常是用户名/密码错误,或者因为用户没有访问网站的权限。
  • 解决方法:验证用户名/密码,以及用户是否有权访问网站。

用户尝试导入或导出应用程序时收到服务器错误。

  • 原因:此错误来自 Web 部署处理程序,通常是部署规则的问题。 由于用户已成功连接,因此它不是 WMSVC 的问题。 部署规则可能具有拼写错误,执行部署的用户可能未获得授权,或者 runAs 标识可能没有访问权限。

  • 解决方法:打开位于 %systemdrive%\inetpub\logs\wmsvc\tracinglogfiles\w3svc1 的跟踪日志,查看哪些规则未能授权。

    • 查找包含失败的日志,例如“详细信息:找不到可以授权用户‘server1\siteowner’、提供程序‘appPoolConfig’、操作‘Read’、路径‘DefaultAppPool’的规则”。 在这种情况下,提供程序 appPoolConfig 未获得授权,并且用户尝试添加不允许添加的提供程序。
    • 另一个常见错误是,用于创建应用的 RunAs 用户对配置没有正确的访问权限。 在这种情况下,Procmon 是一个有用的工具,可用于确定拒绝访问错误的来源。

总结

本指南介绍如何配置 WMSVC 和部署处理程序以允许用户管理其 Web 应用程序,并介绍了使用 IIS 管理器创建和安装包以验证委派规则是否正常工作的步骤。