如何在 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 发布功能,以便开发人员可以发布?的主要内容,如果未能解决你的问题,请参考以下文章