如何进行生产 IIS 网站部署?

如何进行生产 IIS 网站部署?

所以,不确定这是 Stack Overflow 问题还是 Server Fault 问题。如果我有一个 .NET 网站想要部署到生产环境,最好的方法是什么。我应该将其打包为 MSI 并安装吗?使用 nant 推送所需文件。只需使用 Beyond Compare 将文件通过 FTP 上传即可?

如何部署生产代码?这是我正在研究的一个 Windows 特定案例。

答案1

IIS 支持 xcopy 部署,因此除非您有特殊要求,否则只需复制文件即可。

一种方法是使用一个简单的脚本机器人复制将新文件复制到服务器。

如果网站很大,这需要很长时间,请使用版本控制系统。我喜欢Mercurial为此,您必须小心不要让版本控制系统的配置文件最终被公开。部署只是提交更改,然后在服务器上签出最新版本的问题。除了高效之外,这还允许快速回滚(如果您标记了最后一个好版本),以防您的最新和最好的版本出现严重错误。

为了最大限度地减少停机时间,您可以让脚本将文件复制到新目录,然后快速重命名目录,或者将 IIS 指向新目录的位置更改。

答案2

考虑使用Web 部署工具来自 Microsoft。它专门设计用于帮助将 Web 应用程序及其更新部署到生产 IIS 6 和 7 Web 服务器,在我看来,它比 MSI(Windows Installer)做得更好。

通常,您可以通过在某处设置“金牌主控”站点,然后告诉该工具从那里打包更改来使用它。然后,它将查看要部署的目标服务器,并进行必要的更改,使其看起来像金牌主控(这对后续更新很有用)。如果您要部署到多个 Web 服务器(即一个服务器场),它特别有用,并且它支持部署的不仅仅是文件(它还可以处理注册表更改、部署证书、SQL 数据库等)。

答案3

我进一步建议 Joel 的回答,让持续集成服务器从源代码控制系统中拾取您的更改。然后它将构建项目。然后让它将构建的输出复制到新文件夹中。然后您可以进行一些快速配置更改(web.config 和 app.config)。瞧,准备好进行 Xcopy 了!

查看巡航控制网

答案4

哦,天哪,我们公司有一支专门负责这项工作的团队。他们有一个内部工具,可以将服务器从集群/服务器场中取出,发布文件,运行 NUnits,然后将其重新添加到集群/服务器场中。他们为 16 台服务器中的每台服务器执行此操作。这需要几个小时。我们其他人甚至没有“查看访问权限”。

对于我的个人项目,我直接从 VS2005 发布到我的网络服务器。安全性不太严格。

相关内容