Dar*_*rov 103 asp.net deployment
我正在寻找用于将ASP.NET Web应用程序项目(非 ASP.NET网站)部署到生产中的不同技术/工具?
我对持续集成构建服务器在某个位置删除二进制文件的时间与第一个用户请求命中这些二进制文件的时间之间发生的工作流程特别感兴趣.
您使用的是某些特定工具还是只使用XCOPY?如何打包应用程序(ZIP,MSI,...)?
首次部署应用程序时,如何设置应用程序池和虚拟目录(您是手动创建还是使用某些工具创建它们)?
当静态资源发生更改(CSS,JS或图像文件)时,您是重新部署整个应用程序还是只重新部署修改后的资源?汇编/ ASPX页面何时更改?
您是否跟踪给定应用程序的所有已部署版本,如果出现问题,您是否有将应用程序恢复到先前已知工作状态的过程?
随意完成以前的列表.
以下是我们用于部署ASP.NET应用程序的内容:
kem*_*002 25
我们使用Setup Factory在MSI中部署了所有代码.如果必须改变某些事情,我们会重新部署整个解决方案.对于css文件来说这听起来有些过分,但它绝对保持所有环境同步,我们确切地知道生产中的内容(我们以相同的方式部署到所有测试和uat环境).
Mar*_*ell 19
我们对实时服务器进行滚动部署,因此我们不使用安装程序项目; 我们有更像CI的东西:
robocopy会自动确保仅部署更改.
重新申请App Pool等; 我喜欢这个实现自动化(见这个问题),但在那一刻它是手动的.不过,我真的想改变它.
(这可能有助于我们拥有自己的数据中心和服务器场"现场",因此我们不必跨越许多障碍)
网站
部署人员:http: //www.codeproject.com/KB/install/deployer.aspx
我将网站发布到本地文件夹,压缩它,然后通过FTP上传.服务器上的部署者然后提取zip,替换配置值(在Web.Config和其他文件中),就是这样.
当然,对于第一次运行,您需要连接到服务器并设置IIS WebSite,数据库,但之后发布更新是小菜一碟.
数据库
为了使数据库保持同步,请使用http://www.red-gate.com/products/sql-development/sql-compare/
如果服务器落后于一堆路由器并且您无法直接连接(这是SQL Compare的要求),请使用https://secure.logmein.com/products/hamachi2/来创建VPN.
我主要将ASP.NET应用程序部署到Linux服务器,并重新部署所有内容,即使是最小的更改.这是我的标准工作流程:
Checkout是使用Subversion的命令行版本完成的,并且使用xbuild完成构建(msbuild类似于Mono项目).大多数魔法都是在ReleaseIt中完成的.
在我的开发服务器上,我基本上有持续集成,但在生产方面,我实际上是SSH到服务器并通过运行脚本手动启动部署.我的脚本被巧妙地称为"部署",这就是我在bash提示符下键入的内容.我很有创意.不.
在生产中,我必须两次输入'deploy':一次签出,构建和部署到一个过时的目录,一次将该目录作为默认实例.由于目录已过时,我只需在相关目录中键入"deploy"即可恢复到以前的任何部署.
初始部署需要几分钟,并且恢复到先前版本需要几秒钟.
它对我来说是一个很好的解决方案,仅依赖于三个命令行实用程序(svn,xbuild和releaseit),DB客户端,SSH和Bash.
我真的需要在CodePlex上更新ReleaseIt的副本:
http://releaseit.codeplex.com/
| 归档时间: |
|
| 查看次数: |
36050 次 |
| 最近记录: |