如何在 IIS 上配置 Web Deploy 发布功能,以便开发人员可以发布?

Posted

技术标签:

【中文标题】如何在 IIS 上配置 Web Deploy 发布功能,以便开发人员可以发布?【英文标题】:How to configure Web Deploy publishing feature on IIS so developer can publish? 【发布时间】:2013-10-08 03:19:32 【问题描述】:

我控制一台在 Windows Server 2012 上运行 IIS 8 的服务器。我想在 Visual Studio 2012 中使用发布选项发布一些基本的 asp.net 网站。没有关于服务器配置步骤的优秀/当前 Microsoft 文章。

1) 我到底需要在服务器上做什么?我在各种 IIS 角色下看不到任何“网络部署”角色选项。我读过一些人从 Microsoft 下载和安装“Web Deploy 3.0”,但该文件已有一年的历史,我必须下载另一个文件才能使用提升的 IIS 文件部署选项,这似乎很奇怪。如果您像我一样使用 IIS7 或 IIS7.5 而不是 IIS8,请随时回复您是做什么的,但请告诉我您使用的是什么版本。

2) 认证过程是否加密?例如,FTP 将以纯文本形式发送密码。 SSL 上的 FTP 没有,但设置一个自发行的 SSL 证书只是为了获得安全的身份验证很烦人。那么 Web 部署呢?安全吗?

3) 我必须在服务器的防火墙上打开端口 8172 吗?微软的文档说我“可能需要”。

4) 在 Visual Studio 方面,它需要一个用于身份验证的帐户。这是服务器上的 Windows 帐户吗?然后我应该右键单击服务器上的 IIS 网站文件夹并将此用户添加到那里,还是有其他一些将用户映射到网站的首选方式?如果有,需要什么权利?

请回答以上任何或所有问题,但请关注服务器端配置而不是客户端(Visual Studio)。请不要推荐 FTP,因为我真的很想尝试 Web Deploy。我也在添加一个 IIS 7.5 标记,因为某些答案可能与 IIS 8 相同。

【问题讨论】:

【参考方案1】:

看来仍然必须下载 Web Deploy 扩展。此外,Version 3.5 现已推出。

要在服务器上下载,默认的 IE 安全规则将要求您将 http://*.microsoft.com 之类的内容添加为受信任的站点,否则您将无法下载安装程序。

整个包的用途相当大,涵盖了 IIS 的许多部署/备份/传输类型的场景。因此,当您安装它时,它会变成“Web Platform Installer 4.6”,除了 Web Deploy 3.5 之外,还安装了大约 10 个必备软件。这些先决条件包括 CLR 类型、SQL Server 框架(即使您没有安装 SQL Server)、SQL Server 共享管理对象等。之后我确实检查了所有这些项目是否可以通过控制面板卸载(以防我改变主意关于网络部署),它们就在那里。

最后,为了在一个站点上配置 web deploy,我找到了这个文档:

http://www.iis.net/learn/publish/using-web-deploy/configure-the-web-deployment-handler

要了解更多信息,请谷歌“网络部署处理程序”。

您似乎也可以配置安全身份验证,这是我选择此 Web Deploy 发布路径而不是使用纯明文 FTP 的主要原因。但是,http://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy 说

Web Deploy is secure. Web Deploy supports transfer over HTTPS. Note that variants of FTP such as SFTP and FTPS are also secure.

我不确定这是否意味着无论如何我都必须使用 SSL 证书。我希望 Web Deploy 提供更多既安全又不需要证书的身份验证选项。

【讨论】:

感谢您的详细帖子。我同意文档不是很好,我花了过去几个小时试图解决这个问题。 奇怪,3.6 出现在 Web PI 中,但没有出现在 ASP.NET 部署和迁移页面上?? 安装 Web Deploy 3.6 不会创建管理服务委派工具。我必须先卸载 3.6 并安装 3.5,然后才能使用管理服务委派。 就像@SteveC 所说,Web Deploy 主页上仍然没有提及 3.6。【参考方案2】:

标记为正确的答案为我指明了将网站从 Visual Studio 2013 发布到 Server 2012 的正确方向。验证连接按钮一直显示检查 Web 管理服务是否已安装。

截至 2014 年 4 月,这些简单的步骤有效:

安装网络部署

http://www.iis.net/downloads/microsoft/web-deploy

在 Powershell 中: (来自:https://www.orcsweb.com/blog/jamie-furr/manage-and-install-iis8-on-windows-2012-server-core/)

安装-WindowsFeature Web-服务器 Install-WindowsFeature Web-Mgmt-Service 设置项属性-路径 HKLM:\SOFTWARE\Microsoft\WebManagement\Server -名称 EnableRemoteManagement - 值 1 网络停止 WMSVC 网络启动 WMSVC netsh advfirewall 防火墙添加规则名称=”允许 Web 管理” dir=in action=allow service=”WMSVC”

在 IIS 中: (从 http://blog.richardszalay.com/2013/02/02/building-a-deployment-pipeline-with-msdeploy-part-4-server-configuration/)

创建一个新的非管理员用户 创建用户后,我们需要 授予其部署站点的权限。右键单击您的 网站并从 “部署”子菜单

【讨论】:

仅供参考,IIS 8 在Deploy 下不再具有Configure for Web Deploy Publishing 选项 真是惊喜 :) 我个人已经搬回 xcopy deploy。简单得多,无论 Microsoft 所做的任何更改,xcopy 仍然可以正常工作 + 我们所有的团队都了解它是如何工作的。 我同意你的看法。我一直在尝试找出 Web Deploy,但必须以正确的顺序安装包。 Web 平台安装程序似乎无法获取正确的依赖项。我也将使用 xcopy。 哈 - 自 Vista/Sever 2008 以来 xcopy 似乎已被标记为已弃用。RoboCopy 是它的替代品:en.wikipedia.org/wiki/Robocopy 我们的 xcopy/Robocopy 脚本运行良好 - 更简单 @webworm - 不,IIS 8 仍然具有用于 Web 部署发布的配置,至少如果您在 Windows Server 2012 R2 上使用它。如果您在 Windows 8.x 上使用 IIS8,那么它不支持某些扩展。

以上是关于如何在 IIS 上配置 Web Deploy 发布功能,以便开发人员可以发布?的主要内容,如果未能解决你的问题,请参考以下文章

web deploy 部署网站

IIS支持web deploy发布

Web Deploy发布网站一条龙解决方案

vs 2015 web Deploy发布

Visual Studio + web deploy部署web服务器到IIS过程记录

VS Release IIS (Web Deploy Package)