ASP.Net无法在PRODUCTION中创建/卷影副本

Ric*_*ard 15 asp.net dll shadow-copy asp.net-4.0 windows-server-2008-r2

我们最近更新了一个相当大的ASP.NET网站(~1500th alexa流量排名),以使用在Windows Server 2008 R2上运行的VS2010和.NET 4.0

从那时起,当我们部署新版本的网站时,我们偶尔会注意到这篇文章中的相同错误: ASP.Net无法创建/卷影副本 错误消息是:无法创建/卷影复制'xxxx,版本= 4.0.4301.26898,Culture =当该文件已存在时,中性,PublicKeyToken = null'

但是,与该帖子不同,错误仅在我们的生产环境中发生,并且仅在某些服务器上发生.

在我们发布新版本的代码之后,我们回收所有AppPools并且错误开始发生.

另一个AppPool回收似乎解决了这个问题,但我真的想知道如何才能首先避免这个问题?

Ric*_*ard 4

我们终于解决了“无法创建/卷影复制”问题。事实证明,问题是由于我们的 AppPool 回收和目录副本的时间安排造成的。它的工作原理是这样的:

  1. 将主网站复制到:server\directory
  2. 回收网站的应用程序池
  3. 将小型管理站点复制到 server\otherdirectory

问题是我们的管理站点是主站点的虚拟目录并使用相同的应用程序池。这在 .NET 2.0 下运行良好,但我认为我们可以在升级到 .NET 4.0 时查明故障。如果我们这样做的话,似乎运行得很好:

  1. 将主网站复制到:server\directory
  2. 将小型管理站点复制到 server\otherdirectory
  3. 回收网站的应用程序池