我们目前通过创建数据库并通过查询分析器运行SQL脚本来部署Web应用程序。然后我们复制“发布网站”的输出并在IIS中设置该网站。
我们在visual studio中看过websetup,但这部分似乎记录很少。例如,我们不清楚如何向用户询问SQL服务器的IP和密码。我们也倾向于以这种方式部署网站,而不是http://example.com/project,而不仅仅是http://example.com。
然后存在未安装AJAX.Net或未应用某些或其他补丁的问题。
到目前为止,我们可以物理访问服务器。很快我们将要发运CDROM。手动干预和自动化之间的实际权衡是什么?
答案 0 :(得分:7)
避免Visual Studio部署,并尽可能自动化。 Web部署项目和NAnt可以成为您的朋友!
简而言之,我们的部署设置:
我们使用RedGate SQL编写dev和live数据库之间的差异。
调用MSBUILD构建Web部署项目(.wdproj)的NAnt构建文件,将生成的编译Web应用程序(以及SQL更改脚本)拉上来,然后将zip文件上载到服务器。
在服务器端,还有另一个NAnt构建文件,它使应用程序脱机,备份数据库,备份网站。运行SQL更改脚本,解压缩新版本并将应用程序联机。
步骤3通常是“手动”(一次双击),但有时会安排在深夜。您可以从CDROM完全相同,甚至可以编写一个非常小的Windows Forms应用程序作为包装器。
如果您有兴趣,可以提供NAnt脚本的详细信息。
答案 1 :(得分:2)
您是否尝试过使用Web Deployment项目?现在也支持VS 2008 ..
答案 2 :(得分:0)
我主要将ASP.NET应用程序部署到Linux服务器。这是我的标准工作流程:
使用命令行版本的Subversion完成Checkout,并使用xbuild完成构建(msbuild与Mono项目类似)。大多数魔法都是在ReleaseIt中完成的。
在我的开发服务器上,我基本上有持续集成,但在生产方面,我实际上是SSH到服务器并通过运行脚本手动启动部署。我的脚本被巧妙地称为“部署”,这就是我在bash提示符下键入的内容。我很有创意。不
在生产中,我必须两次输入'deploy':一次签出,构建和部署到一个过时的目录,一次将该目录作为默认实例。由于目录已过时,我只需在相关目录中输入“deploy”即可恢复到以前的任何部署。
初始部署需要几分钟时间,并且恢复到先前版本需要几秒钟。
对我来说这是一个很好的解决方案,只依赖于三个命令行实用程序(svn,xbuild和releaseit),数据库客户端,SSH和Bash。
我确实需要在CodePlex上更新ReleaseIt的副本: