如何修复MVC无法创建/影子副本' XXX'当该文件已存在时

时间:2016-08-11 08:06:55

标签: asp.net-mvc asp.net-mvc-4 razor

我一天有几次在运行MVC 4 Razor项目时收到此错误。当我刷新页面时,它将只在那个时候解决。什么是永久解决方案。

Cannot create/shadow copy 'WebGrease' when that file already exists.

2 个答案:

答案 0 :(得分:2)

为了解决这个问题,有两种方法。

解决方案1: 重新启动IIS并重新启动存在虚拟目录的AppPool。

解决方案2: 您必须通过使用以下条目更新web.config,告诉ASP.NET MVC不要将项目程序集卷影复制到ASP.NET临时文件夹文件:

<configuration>
   <system.web>
      <hostingEnvironment shadowCopyBinAssemblies="false" />
   </system.web>
</configuration>

然后重新启动您的应用程序。

<强>原因: 默认情况下,在ASP.NET MVC创建的每个appdomain上都启用了卷影副本。加载的程序集将复制到卷影副本缓存目录,并将从那里使用。这样原始文件就不会被锁定并且可以被修改。使用调试器运行ASP.Net应用程序时可能遇到的错误是“当该文件已存在时无法创建/卷影复制'XXX”。

答案 1 :(得分:0)