我们最近更新了一个相当大的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回收似乎解决了这个问题,但我真的想知道我们如何能够首先避免这个问题?
答案 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回收和时间的关系。我们的目录副本。它的工作原理如下:
问题是我们的管理站点是主站点的虚拟目录,并使用相同的AppPool。这在.NET 2.0下运行良好,但我认为我们可以查明当我们升级到.NET 4.0时的失败。如果我们这样做,似乎运行得很好: