首页 文章

您使用什么方法将ASP.Net应用程序部署到野外?

提问于
浏览
19

目前,我们通过在本地发布网站并通过电子邮件将zip文件通过电子邮件发送给系统管理员来部署已编译的ASP.Net应用程序,并提供(通常)冗长的部署说明 . 这是因为我们第一次将ASP.Net应用程序部署到客户时,dev和测试IIS实例是相同的,我们无法将该站点两次部署到同一台机器上 . 这为所有后续项目的部署奠定了基调 .

我现在正在评估我们的部署方法,我正在专门研究内置的部署工具;具体来说,我正在研究自定义安装任务,并尽可能多地使用标准安装程序功能(主要是用户界面) .

其次,我正在考虑合并部署和自动更新 .

您如何在组织中部署软件?您使用了哪些工具,以及最常遇到的问题?

6 回答

  • 0

    Deploy Web Applications Using the Copy Web Tool
    Microsoft Training Kit Book Web Based Development中的文本
    如果要向许多用户提供Web应用程序(例如,允许人们从Web下载并安装它),Web Setup Projects非常有用 . 如果您负责更新组织的特定网站,则每次进行更新时登录Web服务器并安装Windows Installer程序包都是不切实际的 . 对于内部应用程序,您可以直接在Web服务器上编辑Web应用程序 . 但是,您所做的更改会立即在 生产环境 Web应用程序中实现,这包括可能存在的任何错误 . 要使自己能够测试Web应用程序,可以在计算机上编辑Web应用程序的本地副本,并使用“复制Web”工具将更改发布到 生产环境 Web服务器 . 您还可以使用“复制Web”工具将更改从登台服务器发布到 生产环境 Web服务器或任何两个Web服务器之间 . 复制Web工具可以将单个文件或整个Web站点复制到源Web站点和远程Web站点 . 您还可以选择同步文件,这涉及仅复制已更改的文件并检测可能的版本控制冲突,其中源和远程站点上的相同文件已单独编辑 . 复制Web工具无法合并单个文件中的更改;只能复制完整的文件 .

  • 0

    我们有专门的DEV,TEST,STAGE和PRODUCTION服务器 .

    我们还有一台专用的编译机,可以运行Cruise Control .

    Cruise Control配置为持续集成构建,该构建在签入代码后运行 . 它还配置为单独的开发,QA,阶段和 生产环境 任务 .

    要部署到开发,首先从SVN检索并构建代码,然后将“预编译Web”文件夹复制到开发Web站点,并将Web服务项目复制到开发应用程序服务器 . Cruise Control还配置为在构建开始之前“标记”源代码,因此我们可以在以后重现构建,或者如果我们需要进行热修复,则从标记分支 .

    要部署到QA,文件将从开发计算机复制到QA计算机 .

    同样,要部署到Stage,文件将从QA计算机复制到Stage计算机 .

    最后,要部署到 生产环境 环境,文件将再次从Stage计算机复制到 生产环境 计算机 .

    为了配置每个环境,我们有一个自定义工具,它是每个环境的Cruise Control任务的一部分,用于修改连接字符串,“debug = true | false”,“customErrors = Off | RemoteOnly”以及其他特定于环境的设置 .

    因此,可以使用Cruise Control仪表板上的按钮来部署每个环境 .

    需要注意的是,我们目前在Cruise Control配置文件中配置了 生产环境 数据库密码...将其移动到其他地方会很不错!

    最后,让我补充一点,即使我们的 生产环境 机器在专用托管设施中,也可以从我们的Cruise Control机器访问服务器,这使得 生产环境 部署非常容易 . 唯一的手动步骤是加密web.config文件并删除Cruise Control提供的“AppOffline.html”文件 .

    如果这有帮助,或者您有任何疑问,请告诉我 .

    谢谢!

  • 0

    1)使用MSBUILD构建项目

    2)FTP文件到 生产环境 环境

    3)手动复制/粘贴到每个Web服务器

  • 1

    我有几件事完成如下:

    1)使用Web部署项目来编译和清理构建,以及如果配置在环境之间更改,则交换web.config部分替换 . 2)使用NAnt以重复的方式完成所有构建,存档和复制 .

    Web部署项目最终创建一个MSBuild文件,可用于代替NAnt;但是,我来自Java背景并且一直使用Ant,所以NAnt是我在.Net中的首选 . 如果添加NAnt Contrib任务,您将不仅可以部署文件,还可以处理源控件等项(如果它不是默认任务的一部分)和更改的Sql脚本执行 .

    目前我一起使用这两个选项 . 我有我的NAnt构建文件通过MSBuild调用Web部署项目 . 通过为每个环境设置配置管理器,它允许我自动管理web.config部分替换,并且仍然可以对我的复制和归档版本进行相当不错的控制 .

    希望这可以帮助 .

  • 3

    我们使用Web部署项目和VS 2008项目从Web部署和其他项目的输出创建.msi . 一个名为“setup”的普通Windows应用程序用于执行大量的数据库创建和初步操作,而不是尝试使用自定义步骤自定义安装项目 . 与尝试自定义MS代码相比,这样做要容易得多 . 然后,此Windows应用程序调用用户需要的正确.msi文件 .

    团队基础构建每晚运行以重建解决方案并将所有内容复制到“发行CD”目录,任何人都可以访问该目录并对最新的“发布”进行测试 . 老实说,对于像我们这样的小团队来说,TFS构建有点过分,我只使用它,因为它是我习惯的 .

    在之前的公司中我们使用了这个http://www.finalbuilder.com/,我可以推荐它以方便使用和支持的软件数量 .

  • -2

    对于Intranet站点,我们将CruiseControlSVN结合使用以自动重建站点 .

    从理论上讲,如果您可以将驱动器远程映射到客户端的Intranet,则可以通过VPN扩展此模型 . 或者更快速和肮脏的解决方案可能是使用像SyncBack这样的工具来同步包含站点的已编译DLL的远程文件夹 .

相关问题