2008-09-15 64 views
6

我们目前通过创建数据库并通过查询分析器运行SQL脚本来部署Web应用程序。然后,我们复制“发布网站”的输出并在IIS中设置该网站。什么可能是部署ASP.Net Web应用程序的好方法?

我们已经在visual studio中看到了websetup,但是这部分似乎很薄。例如,我们不清楚如何向用户询问SQL服务器的IP和密码。我们也倾向于使用这种方式部署网站,像http://example.com/project这样的文件夹,而不仅仅是http://example.com

然后有没有安装AJAX.Net或一些或其他补丁没有应用的问题。

到目前为止,我们有物理访问服务器。不久之后,我们即将推出CDROM。手动干预和自动化之间的实际权衡是什么?

回答

7

避免Visual Studio部署,并尽可能自动化。 Web部署项目和NAnt可以成为你的朋友!

简单地说,我们的安装部署:

  1. 我们使用展鹏SQL来开发和实时数据库之间的脚本差别。

  2. 调用MSBUILD构建Web部署项目(.wdproj)的NAnt构建文件,将生成的编译后的Web应用程序(以及SQL更改脚本)拉上来,然后将zip文件上载到服务器。

  3. 在服务器端,有另一个NAnt构建文件,它使应用程序脱机,备份数据库,备份网站。运行SQL更改脚本,解压缩新版本并将应用程序联机。

第3步通常运行“手动”(一次双击),但有时计划在深夜。你可以从CDROM完全相同,甚至可以将一个漂亮的Windows Forms应用程序作为包装器来编写。

非常高兴能够提供NAnt脚本的详细信息,如果您有兴趣。

2

您是否尝试过使用Web Deployment项目?现在还支持VS 2008 ..

+1

网络部署项目并不能帮助我同步的数据库。关于Web部署项目的好处是它在构建过程中发现更多错误。 – 2008-09-15 15:10:08

+0

感谢您的反馈。无论如何,我会保留这里的职位。也许对别人有用。 – 2008-09-15 15:53:56

0

我主要将ASP.NET应用程序部署到Linux服务器。这是我的标准的工作流程:

  • 我使用源代码库(例如Subversion)
  • 在服务器上,我有一个bash脚本,执行以下操作:
    • 检查出最新的代码
    • 是否建立(创建DLL文件)
    • 过滤器中的文件下到要领(去除例如代码文件)
    • 备份数据库
    • 部署文件到Web服务器的当前日期
    • 命名的目录更新的数据库,如果一个新的架构包括在部署
    • 使新安装的默认之一,所以它会在下一送达打

结帐与颠覆的命令行版本完成,建筑与xbuild完成(从单项目的MSBuild工作一样)。大部分的魔法都是在ReleaseIt中完成的。

在我的开发服务器上,我基本上有持续集成,但在生产端,我实际上是通过SSH进入服务器并通过运行脚本手动启动部署。我的脚本巧妙地称为“部署”,所以这就是我在bash提示符下键入的内容。我很有创意。不。

在生产中,我必须输入'deploy'两次:一次签出,构建和部署到一个过时的目录,一次使该目录成为默认实例。由于目录是过时的,我可以简单地通过在相关目录中键入'deploy'来恢复到以前的任何部署。

初始部署需要几分钟时间,并且恢复到以前的版本需要几秒钟。

这对我来说是一个很好的解决方案,只依赖三个命令行工具(svn,xbuild和releaseit),DB客户端,SSH和Bash。

我真的需要在CodePlex上的某个时候更新ReleaseIt的副本:

http://releaseit.codeplex.com/

相关问题