What could be good ways to deploy ASP.Net Web Applications?我们目前通过创建数据库和通过查询分析器运行SQL脚本来部署Web应用程序。然后我们从"发布网站"复制输出,并在IIS中设置该网站。 我们已经在Visual Studio中看到了websetup,但该部分的文档似乎很少。例如,我们不清楚如何向用户询问SQL Server的IP和密码。我们还倾向于将网站部署到http://example.com/project这样的文件夹中,而不仅仅是http://example.com。 然后,Ajax.net没有安装,或者某些补丁或其他补丁没有应用。 到目前为止,我们可以物理访问服务器。虽然我们很快就要装运光盘了。人工干预和自动化之间的实际权衡是什么? 避免Visual Studio部署,并尽可能实现自动化。网络部署项目和南特可以成为您的朋友! 简言之,我们的部署设置: 我们使用RedgateSQL编写开发人员和实时数据库之间的差异脚本。 一个nant构建文件,它调用msbuild来构建Web部署项目(.wdproj),压缩生成的编译Web应用程序(连同SQL更改脚本),然后将zip文件上载到服务器。 在服务器端,还有另一个nant构建文件,它使应用程序离线,备份数据库,备份网站。运行SQL更改脚本,解压缩新版本并使应用程序联机。 步骤3通常是"手动"运行(双击一次),但有时计划在深夜运行。你可以从光盘上做同样的事情,甚至写一个小的Windows窗体应用作为包装。 如果你感兴趣的话,很乐意提供南特剧本的细节。 您尝试过使用Web部署项目吗?现在也支持vs 2008。 我主要将ASP.NET应用程序部署到Linux服务器上。这是我的标准工作流程:
签出是通过命令行版本的Subversion完成的,而构建是通过Xbuild完成的(msbuild的工作类似于mono项目)。大部分魔法都是在释放中完成的。 在我的dev服务器上,我基本上具有持续集成,但在生产方面,我实际上是通过ssh进入服务器,并通过运行脚本手动启动部署。我的脚本被巧妙地称为"deploy",所以这就是我在bash提示下键入的内容。我很有创造力。不是。 在生产环境中,我必须键入"deploy"两次:一次是签出、生成并部署到一个日期为的目录,另一次是将该目录设置为默认实例。由于目录是有日期的,所以只需在相关目录中键入'deploy',就可以恢复到以前的任何部署。 初始部署需要几分钟时间,恢复到以前的版本需要几秒钟时间。 对于我来说,这是一个很好的解决方案,它只依赖于三个命令行实用程序(SVN、Xbuild和Releaseit)、DB客户机、SSH和bash。 我真的需要在codeplex上更新releaseit的副本: 网址:http://releaseit.codeplex.com/ |