代码之家  ›  专栏  ›  技术社区  ›  John MacIntyre

有人创建安装程序来部署内部asp.net web应用程序吗?

  •  7
  • John MacIntyre  · 技术社区  · 16 年前

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

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

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

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

    你这样做有什么问题吗?

    9 回复  |  直到 16 年前
        1
  •  5
  •   kemiller2002    16 年前

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

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

        2
  •  3
  •   Tai Squared    16 年前

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

        3
  •  1
  •   CapBBeard    16 年前

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

    然而,我最近也在思考这个问题,并开始思考如何使用适当的部署来改进流程——必须记录详细的安装过程可能会非常痛苦。

        4
  •  1
  •   Andre Gallo    16 年前

    我用 Powershell 并且发现很容易自动化许多任务。一开始你可能会发现有点不同,但最后你会发现这一切都是关于的力量。NET库!!!

        5
  •  1
  •   MatthewMartin muthu    16 年前

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

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

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

        6
  •  1
  •   Dillie-O    16 年前

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

    然而,当我们必须安装一个使用较新版本Crystal Reports的web应用程序时,我们确实需要使用安装程序,因为它必须用密钥做一些特殊的事情,而且我们在服务器本身上没有完整版本的CR。因此,在使用第三方应用程序时,请记住这一点,它们可能需要执行MSI易于处理的某种合并模块。

        7
  •  1
  •   erlando    16 年前

    是的。..我们有一个需要设置很多先决条件的应用程序。…web服务、windows服务、用户帐户、安全性、文件夹创建、GAC位等……我将所有这些都整合到一个漂亮的MSI中,带有可以干净安装和卸载的自定义操作。在新盒子上部署节省了大约一个小时的工作。

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

        8
  •  1
  •   Charlie    16 年前

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

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

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

        9
  •  0
  •   Pete    15 年前

    F5To调试。..

    你说如果你没有时间好好做,可以走捷径吗?

    “谁将在测试环境中测试代码?”你自己说过你有_test的配置文件——为什么这不是一个合适的测试?

    推荐文章