2

我们有一个内部网络系统来处理我们公司的大部分业务。数百名用户全天使用它,它具有很高的优先级并且必须始终运行。我们正在考虑迁移到 ASP.NET MVC 2;目前我们使用网络表单。使用 Web 表单的美妙之处在于我们可以立即发布单个网页,而不是部署整个应用程序。

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

例如,如果您有高优先级的错误修复,那么将 Web 表单与 MVC 混合使用并用代码隐藏的 Web 表单替换视图是否明智,直到您发布下一个不是 Web 表单的适当版本?

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

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

其他人是怎么做的?

4

3 回答 3

1

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

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

最流畅的方法是在两台服务器上运行,并将会话存储在 sql server 或共享状态。然后您可以将 S1 关闭并对其进行修补 => 再次将 s1 恢复并关闭 S2 => 修补 S2 然后再次将其打开。Al 认为如果您对代码的会话部分进行任何重大更改,这可能不起作用。

于 2009-11-12T10:28:33.067 回答
0

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

于 2009-11-12T09:23:19.070 回答
0

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

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

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

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

于 2010-07-15T22:39:54.523 回答