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

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

但我很好奇;有人创建安装程序来部署内部 ASP.NET Web 应用程序吗?

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

您这样做有遇到任何问题吗?

有帮助吗?

解决方案

绝对。我们用它做所有我们的应用程序。这样,我们创建安装程序,并在质量保证和UAT环境来测试运行它,我们知道到底是怎么回事在生产中发生。有没有猜测到什么叫人可以做的东西,或者如果他们错过了一步。它使事情更容易。

噢我忘了自动化过程太。我们已经制定系统(蚂蚁山临),它会自动将其部署到合适的环境。质量保证人们不必等到事情做了,因为这一切都在凌晨2点完成。如果他们需要重新运行与更新建设中,开发者在检查代码,我们按下一个按钮,它的自动部署。没有等待构建工程师,因为他是在一个会议或生病或别的什么东西。

其他提示

您总是希望有一个自动化的方式来构建和部署 - 这大大降低了一次性错误的机会,如果你忘记了某一步。此外,它可以让你卸载部署到别人很容易,而不必教给他们100个定制步骤。无论项目是内部的或没有,所有的应用程序应遵循的最佳做法。

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

我也一直在思考这个然而最近,并已开始考虑如何使用正确的部署可以提高的过程 - 为起草一份详细的安装过程是很痛苦的。

我使用 Powershell的,发现真的很容易实现自动化很多任务。你可能会发现有些不同了非常begining但最后你会发现它是所有关于.NET库的动力!

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

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

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

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

不过,我们确实需要的时候,我们不得不请安装使用Crystal Reports的较新版本,因为它必须做一些特殊的一个关键的Web应用程序使用一个安装程序,我们没有一个完全成熟的版本CR服务器本身上。因此,与第三方应用程序工作时,记住这一点,他们可能需要做一些合并模块的MSI处理容易。

是的...我们有一个需要很多先决条件设置....网络服务,窗口服务,用户帐户的安全,创建文件夹,GAC位等....我滚了这一切的应用成一个不错的MSI与可以安装和卸载干净的自定义操作。保存的大约一个小时的工作的部署一个新的盒。

一个很多其他较小的应用程序只是通过执行发布网站到本地文件夹然后ftp'ing内容到目标展开。

它极大地取决于你的项目,你的enviornment和内部的用户群的规模。我很少使用MSI部署,因为我们太小,有多个环境的操作(除了为SharePoint,这是不同的一起)。我们开发和使用VS到Web应用程序部署到开发中,假设他们被批准,然后我们用VS再次部署到现场框。

的唯一前提是,我们有在web.config的多个拷贝(与测试,偏差所附和生活),然后我们删除后缀关闭相关的文件根据其被部署在哪里。

这可能不是最好的方法(我知道这是不是),但它的工作原理和它帮助中型解决方案在一个小规模的用户环境中的小型快速部署。

... F5ToDebug

您说了OK,如果你没有时间做正确走捷径?

“谁去测试对测试环境的代码?”你自己说的,你有_test配置文件 - ?为什么会不会是一个合适的测试

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top