更新现有的asp.net网站将开启用户

时间:2010-05-27 15:01:05

标签: asp.net

当我通过用最新版本覆盖它来更新客户服务器上运行的ASP.NET网站[注意:它不是Web应用程序]时,它会将所有用户关闭。

我希望能够在不启动用户的情况下提供新版本的网站 - 有没有办法尽量减少用户被启动的机会? [除了显而易见的等待低使用时间之外]

如果我从InProc转移到会话状态,我想这可能会成功 - 但还有其他方法吗?

4 个答案:

答案 0 :(得分:5)

离开InProc会话状态应该有所帮助。

现在的问题是,只要您的应用程序在IIS中重置(覆盖web.config将导致重新启动),IIS工作进程就会重新启动并清除会话信息。

查看此MSDN页面以阅读进程内会话状态的限制:

Session State - MSDN

答案 1 :(得分:0)

我认为除了你的建议,显示“正在更新...”页面而不是开始用户是合适的。您可以通过更改web.config文件来完成此操作。

答案 2 :(得分:0)

会话ID在应用程序池的生命周期内有效,或直到(我相信)有关客户端的最后一页请求后20分钟。这可以在web.config中配置:

<configuration>
  <system.web>
     <sessionState 

         cookieless="false" 
         timeout="20" 
     </sessionState>
  </system.web>
</configuration>

如果应用程序池被回收,应用程序中的文件会更新等,您的会话ID将无效。因此,在非高峰时段部署您的网站是明智的。

答案 3 :(得分:0)

将应用程序设计为不依赖于会话状态变量的存在。使用cookie进行身份验证(或集成身份验证)并在使用时检查会话变量;如果它们不存在则重新加载它们。