7

我总是通过 FTP(有时甚至是 xcopy)部署我的 Web 应用程序,然后自己手动运行数据库脚本。

我在 90 年代开始以这种方式部署,但最近,我看到了一些带有安装程序的 Web 应用程序。我开始质疑,如果我被锁定在一个过时的过程中。我是一名顾问,我的应用程序通常是内部的,所以我不担心分发和让其他人安装它们。

但我很好奇;是否有人创建安装程序来部署内部 asp.net Web 应用程序?

如果是这样,为什么?(自愿、强制或自动化过程的一部分)

你这样做有什么问题吗?

4

9 回答 9

5

绝对地。我们用它来做我们所有的应用程序。这样,我们创建安装程序并在 qa 和 uat 环境中运行它以进行测试,我们确切地知道生产中会发生什么。没有人猜测某人可能会按照什么顺序做某事,或者他们是否错过了一步。它使事情变得容易得多。

哦,我也忘记了自动化过程。我们有适当的系统(Ant Hill Pro),可以自动将其部署到适当的环境中。质量检查人员不必等待完成某件事,因为这一切都在凌晨 2 点完成。如果他们需要使用更新重新运行构建,开发人员会签入代码,我们按下一个按钮,它就会自动部署。无需等待构建工程师,因为他正在开会或生病或其他任何事情。

于 2009-01-28T21:56:57.480 回答
3

你总是希望有一种自动化的方式来构建和部署——如果你忘记了某个步骤,它会大大减少一次性错误的机会。此外,它还允许您轻松地将部署卸载给其他人,而无需教他们 100 个自定义步骤。无论项目是否为内部项目,所有应用程序都应遵循最佳实践。

于 2009-01-28T21:58:33.173 回答
1

就我个人而言,我有点像 OP;通常我只是使用 FTP 进行部署,但通常我的应用程序是内部的,或者在其他项目的情况下,100% 由我管理。

然而,我最近也一直在考虑这个问题,并开始考虑如何使用正确的部署来改进这个过程——必须记录一个详细的安装过程可能是一个真正的痛苦。

于 2009-01-28T21:59:35.603 回答
1

我使用Powershell并发现自动执行许多任务非常容易。一开始您可能会发现有点不同,但最后您会发现这完全取决于 .NET 库的强大功能!!!

于 2009-01-28T22:02:15.287 回答
1

我已经使用“ Web 设置项目”创建了一个 MSI,该 MSI为内部应用程序安装了“ Web 部署项目”的输出。我们的服务器管理员无法完成 50 步手动安装的任务。对于我当前的应用程序,我的服务器管理员不喜欢 MSI 安装程序的“黑匣子”感觉,而是更喜欢获得一堆文件和 50 步部署手册。(在这里看到一个模式?问你的服务器管理员他想要什么。)

Web 安装项目并没有立即明确如何安装到“默认网站”以外的任何地方,除此之外,它使安装过程可重复并创建了内置的回滚方式(只需从 1 运行安装程序以前的版本)。

这当然假设您的虚拟目录不包含任何用户修改的内容——我不相信 MSI 可以正确合并用户创建的文件和新文件。

于 2009-01-28T22:10:36.360 回答
1

我们在这里使用“XCopy”部署模型,因为 Ops 人员有自己的方法在服务器上的新 Web 应用程序上设置安全性。

但是,当我们必须安装使用较新版本 Crystal Reports 的 Web 应用程序时,我们确实需要使用安装程序,因为它必须使用密钥执行一些特殊操作,而且我们没有完整的 CR 版本。服务器本身。因此,在使用第三方应用程序时请记住这一点,他们可能需要执行某种 MSI 可以轻松处理的合并模块。

于 2009-01-28T22:11:27.063 回答
1

是的……我们有一个需要设置很多先决条件的应用程序……Web 服务、Windows 服务、用户帐户、安全性、文件夹创建、GAC 位等……我把它全部汇总成一个具有自定义操作的漂亮 MSI,可以干净地安装和卸载。节省了大约一小时的工作来部署新盒子。

许多其他较小的应用程序只是通过将网站发布到本地文件夹然后通过 ftp 将内容传输到目标来部署的。

于 2009-01-28T22:41:15.003 回答
1

这在很大程度上取决于您的项目规模、环境和内部用户群。我很少使用 msi 进行部署,因为我们的操作太小而无法拥有多个环境(SharePoint 除外,这完全不同)。我们开发并使用 VS 将 web 应用程序部署到开发箱,假设它们被批准然后我们再次使用 VS 部署到 live 箱。

唯一的附带条件是我们有多个 web.config 副本(附加了 test、dev 和 live),然后我们根据其部署位置从相关文件中删除后缀。

它可能不是最好的方法(我知道它不是),但它很有效,并且有助于在小规模用户环境中快速部署中小型解决方案。

于 2009-08-06T12:54:00.493 回答
0

F5ToDebug...

你说如果你没有时间正确地走捷径可以吗?

“谁来测试测试环境的代码?” 您自己说过您有 _test 的配置文件 - 为什么这不是一个合适的测试?

于 2010-01-27T21:52:04.983 回答