如何部署Web应用程序

时间:2009-11-12 09:14:28

标签: deployment asp.net-mvc-2

我们有一个内部网络系统,可以处理我们公司的大部分业务。数以百计的用户全天都在使用它,它是非常高优先级的,必须始终运行。我们正在考虑转向ASP.NET MVC 2;目前我们使用网络表单。使用Web表单的好处是我们可以即时发布单个Web页面,而不是部署整个应用程序。

我很想知道其他人如何部署他们的应用程序,同时仍然让用户可以访问它们。在Visual Studio中使用部署工具可能会导致停止。我正在寻找一种超快速的方法。

如果您有高优先级的错误修复,例如,将Web表单与MVC混合在一起是明智的,而是用代码隐藏的Web表单替换视图,直到您创建下一个不是Web表单的正确版本?

我还看到同一台服务器上的其他解决方案并排运行相同的Web应用程序并更改IIS中的根目录或更改web.config指向不同的文件夹,但问题是这就是你必须做一个完整的构建和部署,即使是为了一个简单的错误修复。

编辑:详细说明, 如何部署应用,而不会对用户造成任何干扰。

其他人怎么做呢?

3 个答案:

答案 0 :(得分:1)

我猜你也可以运行未编译的MVC应用程序吗?并且只需在运行时替换.cs / views等。

websetup卸载/安装非常快,但它会杀死应用程序池..这可能会导致问题。取决于您的网站的构建方式。

最顺畅的方法是在两台服务器上运行它并将会话存储在sql server或shared状态。然后你可以把S1拉下来并修补它=>再次使s1恢复并使S2下降=>补丁S2,然后再次启动它。如果您对代码的会话部分进行任何重大更改,Al认为这可能不起作用。

答案 1 :(得分:0)

让您的网站的多个实例在多个服务器上运行。最好的方法是拥有一个生产环境,一个测试环境和一个开发环境。您可以创建测试用例并在每次新构建时运行负载,如果可以完成所有测试,则将版本移至生产中;)。

答案 2 :(得分:0)

您可以拥有两个物理服务器,每个服务器运行IIS并托管该站点的副本。或者,您可以在SAME服务器上的不同IIS端点下运行该站点的两个副本。 无论哪种方式你削减它,你将需要至少两个生产的网站副本。

我称之为A< - > B切换方法。

首先,将每个生产站点放在不同的IP地址上。在您公司的DNS中,为其中一个IP添加一个条目集,并为其提供一个非常短的TTL。然后,您可以更新站点B,并通过点击IP地址预先测试/预热站点。准备就绪后,将DNS切换到新站点B.一旦TTL过期,您可以关闭站点A并进行更新。

使用共享会话状态有助于最大限度地减少站点之间用户的转换。