16

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

从那以后,当我们部署站点的新版本时,我们偶尔会在这篇文章中注意到同样的错误: ASP.Net cannot create/shadow copy 错误消息是:Cannot create/shadow copy 'xxxx, Version=4.0.4301.26898, Culture=中立,PublicKeyToken=null' 当该文件已经存在时

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

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

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

4

2 回答 2

4

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

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

Set-ItemProperty –路径

HKLM:\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\Web\Scopes -name “C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files” -value “,,4”

重启服务 cisvc

于 2011-11-11T14:03:35.113 回答
4

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

  1. 将主网站复制到:服务器\目录
  2. 为网站回收应用程序池
  3. 将小型管理站点复制到 server\otherdirectory

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

  1. 将主网站复制到:服务器\目录
  2. 将小型管理站点复制到 server\otherdirectory
  3. 为网站回收应用程序池
于 2011-11-28T23:28:21.910 回答