在IIS 6.0 / .NET 3.5上部署网站时如何避免用户中断

时间:2009-08-10 10:08:07

标签: asp.net .net-3.5 deployment session iis-6

我们将网站部署为单个MSI包。我们部署到IIS 6.0(Windows 2003),它们在.NET 3.5上运行。我遇到的问题是,当我们升级到我们网站的新版本时,用户可能只有一半的长期任务。我需要的是以下内容:

  1. 如何阻止用户发起新请求
  2. 让长时间运行任务的用户完成任务
  3. 在网站升级时将用户重定向到目标网页。
  4. 我希望IIS为这些场景提供一些支持,但我想我可能会运气不好。是唯一通过向网站添加自定义功能来实现这一目标的吗?

2 个答案:

答案 0 :(得分:8)

执行ASP.NET部署以防止用户交互的最佳方法是使用 app_offline.htm 文件,请参阅Scott Gu的帖子 - http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx

App_offline非常好用,因为它可以防止任何流量到您网站的任何位置。这是他们升级时在SO上使用的。

答案 1 :(得分:1)

还考虑通过ms sql会话提供程序移动到会话状态服务器。这样可以消除因任何Web应用程序回收(bin dll updates, web.config changes)

而导致的会话状态丢失

如果您使用此方法更改会话结构,则可能会遇到其他一些问题。

我还读到了使用负载平衡硬件来实现这一目标。像

这样的东西
  1. 将所有现有会话重定向到服务器A
  2. 更新服务器B
  3. 将所有新会话重定向到服务器A.
  4. 当服务器A没有更多会话升级时。