如何更新正在运行的asp.net应用程序?

时间:2010-02-17 07:57:15

标签: .net asp.net performance

我们有一个运行的asp.net应用程序,可由全球客户的各个办事处访问(在12个国家的约42个办事处)。现在,在托管它8个月后,我们必须包括6页的更新和15个新的asp.net页面。现在有什么方法我们可以更新现有的优势而不让它离线,即停止它?

4 个答案:

答案 0 :(得分:4)

这实际上取决于您部署应用程序的方式,但通常答案是肯定的 - 只需添加新文件即可关闭并运行。您可能希望阅读ASP.Net Dynamic Compilation

但是,如果您将网站部署为pre-compiled application for deployment only,则答案是否定的 - 您将需要完全重新编译和重新部署。

如果要向应用程序添加源代码,则应用程序域将被回收。如果这是您在说“停止”应用程序时所担心的问题,那么您应该知道它可能会导致明显的延迟(几秒钟),如果您正在使用InProc会话,您的用户会话将被重置,但是应用程序似乎永远不会出现。

您可能还会发现以下文章非常有用 - 尤其是标题为“编译生命周期”的部分,其中涉及应用程序重新启动。 ASP.Net Application Lifecycle Overview

答案 1 :(得分:2)

正如@Mendy在评论中所说,只需从bin文件夹上传新的和修改过的文件以及任何新的/修改过的文件。我知道你不想让它脱机,但你必须在几分钟之内将它带到你更新文件 - 如果你不这样做,那么当你进行更改时,用户在访问它时会遇到不可预测的行为。

您还需要在允许用户重新登录之前运行快速测试,以确保您没有遗漏任何内容,例如:没有损坏的链接/重定向,所有脚本/ css /图像文件都正常加载等等。

答案 2 :(得分:2)

您还可以使用app_offline.htm告诉您的用户该网站的改进程度很低,等等。http://www.dontcodetired.com/blog/post/Quickly-Take-Down-an-ASPNET-Web-Site.aspx

答案 3 :(得分:2)

如果您真的需要24/7正常运行时间,您可能需要查看负载均衡的Web服务器 - 可以将其中一个用于更新,而另一个继续服务。请注意,对于您处理会话的方式,这需要一些谨慎的管理。