2011-10-13 328 views
14

/卷影副本我们最近更新了相当大的ASP.NET网站(〜1500次Alexa的流量排名)使用VS2010和.NET 4.0的Windows服务器上运行的2008 R2ASP.Net不能创建生产

由于那么,当我们部署该网站的新版本中,我们偶尔会发现在这个岗位同样的错误: ASP.Net cannot create/shadow copy 的错误信息是: 无法创建/卷影副本“XXXX,版本= 4.0.4301.26898文化=中性公钥=空'该文件已存在时

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

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

进一步的AppPool回收似乎解决了这个问题,但是我真的想知道我们如何才能避免这个问题呢?

回答

4

我们终于解决了“无法创建/复制影子”问题。问题原因是我们的AppPool回收&我们的目录副本的时间。它的工作是这样的:

  1. 副本主网站:服务器\目录
  2. 对网站
  3. 回收应用程序池
  4. 小管理站点复制到服务器\ otherdirectory

的问题是,我们的admin站点是主站点的虚拟目录,并使用相同的AppPool。这在.NET 2.0下运行良好,但我认为我们可以在升级到.NET 4.0时查明故障。似乎运行,如果我们做到这一点,而不是这样就好了:

  1. 副本主网站:服务器\目录
  2. 小管理站点复制到服务器\ otherdirectory
  3. 回收应用程序池的网站
4

我们发现从索引(和病毒扫描)中排除临时asp.net文件夹可以消除我们的影子副本错误。

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

的Set-ItemProperty -path

HKLM:\系统\ CurrentControlSet \控制\ ContentIndex \目录\网络\作用域 -name “C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \临时ASP.NET文件”值” ,, 4"

重启服务cisvc

+0

我们使用的是Windows Server 2008 R2,并没有该注册表项。感谢您的建议,但我们会看看是否有相同的东西我们可以做 – Richard

+0

防止我的防病毒软件扫描临时ASP.NET文件似乎为我做了诡计。 –