为.NET Web应用程序部署预编译更新?

cus*_*ar9 1 .net deployment

我们在.NET 4.0中有许多Web应用程序(使用Visual Studio 2010编写),这些应用程序已预编译并部署到生产服务器上.

目前,当我们进行更新时,我们用更新的二进制文件替换所有现有文件.这会更新应用程序,但它也会重新启动应用程序,因此所有用户都必须重新登录.

部署的二进制文件基本上由我的解决方案中的每个项目的单个.dll组成.

有没有办法在不中断任何现有用户的情况下更新Web应用程序?

我意识到实现这一目标的一种方法是部署源文件并让它们由动态网络服务器进行编译,但这对我们来说并不是一个可行的选择.

Han*_*ant 6

CLR中支持AppDomainSetup.ShadowCopyFiles属性.打开时,CLR会在加载程序集之前复制该程序集.因此只有副本被锁定,原件才能被覆盖.此功能是为ASP.NET(一种可轻松回收AppDomains的CLR主机)明确设计的.有一篇关于它的优秀MSDN文章,展示了如何配置它.

  • @ cusimar9 - 如果您的目标是在更新应用程序时保留会话,您是否尝试过StateServer会话模式而不是in-proc?它的启用和使用非常简单,不需要额外的软件(与SqlServer模式相反) (2认同)