Asp.net mvc 设置暂存和生产环境,最大限度地减少简单主机的停机时间
我有一个ASP.NET MVC 3应用程序,目前托管在Windows Azure上。我有一个介绍性的特别订阅套餐,几个月都是免费的,但现在我已经开始付费了,它的价格竟然如此昂贵(平均150欧元/米!)。这对于一个短期内无法盈利的网站来说实在是太多了,所以我决定转向一家正规的托管提供商(DiscountASP.Net) 不过,我将真正错过的一件事是Azure提供的分离的暂存和生产环境,以及零停机环境交换 我的问题是,在传统提供商上托管时,如何“模拟”登台环境?在最大限度地减少新部署的停机时间方面,我的最佳选择是什么 谢谢Asp.net mvc 设置暂存和生产环境,最大限度地减少简单主机的停机时间,asp.net-mvc,deployment,azure,production-environment,staging,Asp.net Mvc,Deployment,Azure,Production Environment,Staging,我有一个ASP.NET MVC 3应用程序,目前托管在Windows Azure上。我有一个介绍性的特别订阅套餐,几个月都是免费的,但现在我已经开始付费了,它的价格竟然如此昂贵(平均150欧元/米!)。这对于一个短期内无法盈利的网站来说实在是太多了,所以我决定转向一家正规的托管提供商(DiscountASP.Net) 不过,我将真正错过的一件事是Azure提供的分离的暂存和生产环境,以及零停机环境交换 我的问题是,在传统提供商上托管时,如何“模拟”登台环境?在最大限度地减少新部署的停机时间方面,
<强> Update:< /强>我选择的答案不是因为我认为这是最好的方法,而是因为这是对我来说最有意义的方法。
< P>我使用DISCUSPASP自己。当然,这是一个非常基本的托管,有点落后于时代。但我发现创建一个子目录并发布我的beta/test/任何版本都非常有效。它既不花哨也不漂亮,但确实完成了任务 为此,您需要首先创建子目录,然后进入控制面板并告诉DASP该目录是一个应用程序。然后,您还必须考虑目录的Web.CONFIG将是它自己和父节点的组合。你还必须考虑这个子目录的Roopts.txt,并且一般保护它不受好管闲事的人的影响。 您可能也可以通过子域实现这一点,这取决于您的域的设置方式 另一个选择:appharbor?他们有一个免费的计划。如果你能在他们的免费计划范围内工作,它可能会很好(我从未使用过它们,但目前有兴趣尝试它们)1)获得一个自动部署工具。有大量的免费/开源软件,价值百万/十亿美元的公司实际用于其生产环境2) 获取与第一个相同的第二个托管包。使用它作为您的暂存,然后在暂存通过时重新部署到生产环境。在放弃Windows Azure之前,您可以做一些节省成本的事情来降低每月的账单。例如:
- 如果同时具有Web角色和工作角色,请将两者合并。在Web角色中运行后台处理、队列处理等(在OnStart()中执行耗时的启动,然后添加run()覆盖以调用队列处理等)
- 考虑新的超小型实例,它的成本不到小型实例的一半
- 在确信生产代码运行正常后删除登台部署。但请将cspkg放在blob存储中,以便随时重新部署