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

时间:2011-10-13 20:03:27

标签: asp.net dll asp.net-4.0 windows-server-2008-r2 shadow-copy

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

从那时起,当我们部署新版本的网站时,我们偶尔会在这篇文章中发现同样的错误: ASP.Net cannot create/shadow copy 错误消息是: 当该文件已存在时,无法创建/ shadow copy'xxxx,Version = 4.0.4301.26898,Culture = neutral,PublicKeyToken = null'

然而,与该帖子不同的是,错误仅发生在我们的生产环境中。只在某些服务器上。

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

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

2 个答案:

答案 0 :(得分:4)

我们发现从索引(和病毒扫描)中排除临时asp.net文件夹消除了我们的卷影复制错误。

Windows Server 2003上索引服务的PowerShell脚本示例:

Set-ItemProperty -path

  

HKLM:\系统\ CurrentControlSet \控制\ ContentIndex \目录\网络\作用域   -name“C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files”-value“,, 4”

Restart-Service cisvc

答案 1 :(得分:4)

我们终于解决了'无法创建/影子复制'的问题。问题原来是由于我们的AppPool回收和时间的关系。我们的目录副本。它的工作原理如下:

  1. 将主网站复制到:server \ directory
  2. 回收网站应用程序池
  3. 将小型管理站点复制到server \ otherdirectory
  4. 问题是我们的管理站点是主站点的虚拟目录,并使用相同的AppPool。这在.NET 2.0下运行良好,但我认为我们可以查明当我们升级到.NET 4.0时的失败。如果我们这样做,似乎运行得很好:

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