ASP.Net不能创build/影子副本
开发ASP.Net应用程序时,我重复得到这个错误:
Cannot create/shadow copy 'XXXXX' when that file already exists
其中XXXXX是一个随机的DLL。 通常,DLL是微软企业库中的一个DLL,但它有所不同。
这真的是随机的,这是非常令人沮丧的。 我会花几个小时没有得到错误,然后每10-20分钟就会得到一个错误。
我见过几个解决scheme。 比如这个问题 。 我试过使用清洁解决scheme选项,我也简单地重新启动我的本地IIS。 但是,它仍然以相同的随机但持续的频率出现。
我也看到很多人提到在configuration文件中使用这个选项:
<hostingEnvironment shadowCopyBinAssemblies="false" />
然而,其他人提到这是有问题的,绝对不能用于生产。
那么,我应该放弃并尝试shadowCopyBinAssemblies选项吗? (并且不要把这个改变复制到其他环境中。)我是唯一经常遇到这个问题的人吗?
注意:我正在使用Visual Studio 2008。
下面的解决方法来自这个现在不存在的连接问题 :
- 添加
<hostingEnvironment shadowCopyBinAssemblies="false" />
到你的web.config文件的<system.web>
部分。 - 当你遇到问题时重新启动卡西尼
- 如果出现错误,请停止debugging器,右键单击解决scheme并select“清理解决scheme”。 按F5重新启动debugging器。 这真的很烦人,因为它有> 50%的失败率,你会认为不应该有一个手动的select清洁解决scheme! 这1200美元的POS应用程序应该自动清理它!
- 这里有另一个解决办法,可能会更加吸引一些,加里·法尔的礼貌( http://blogs.claritycon.com/blogs/gary_farr/archive/2007/03/09/2888.aspx )。
-
将以下内容添加到预生成事件中:
IF EXIST $(TargetPath).LOCKED (del $(TargetPath).LOCKED) ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED))
-
解决方法是为我做的工作,而不是使用“构build”使用“构build解决scheme”
- 成功构build后,我数到十,然后我刷新我的表单。
- 我发现,通过重新注册IIS对IIS的问题“消失” – 我从来没有问题。 您需要在命令行上运行以下命令:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
。 这很可能不适合每个人 – 这是一个复杂的问题。 - 重启VS.
- 清理解决scheme时,会发出一些关于无法删除的文件的警告。 这些文件具有只读属性集。 设置这些文件的属性为读/写后,问题就解决了。
- 重新启动IIS
编辑:从旧版本的页面检索项目(礼貌archive.org)。
等待10-30秒之间,刷新。 出于某种原因,这总是适合我。
只需重新启动Visual Studio,为我工作。
打开您的项目属性,打开Web选项卡,并确保未启用“编辑并继续”选项。
在我的情况下,只有iisreset
工作。
使用我们创build的导入的DLL时,我经常遇到这个问题。
试图停止发生失败,甚至引入了不同的问题,但每当发生,我只是做一个重build解决scheme,这个问题会立即消失,build设。
另外,从Visual Studio 2002开始,我还没有看到这个问题。2008年我没有遇到过这个问题,2005年也没有。你使用的是VS吗?
转到devise模式,然后右键单击并在浏览器中点击查看,问题将消失Anil Madan
在预生成事件命令行中添加这些行,基本上在Visual Studio中解锁DLL:
IF EXIST $(TargetPath).LOCKED (del $(TargetPath).LOCKED) ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED))
重新编译和您无法复制DLL错误将不会发生。
如果你使用entity framework:
错误消息: “该文件已存在时,无法创build/影子副本”。
解决scheme: “等几秒钟,刷新页面。”
有关更多信息,请访问: MVC 5 Web应用程序的高级entity framework6scheme(12/12)
我得到同样的问题,把这个代码放在一个web.config为我工作。
<hostingEnvironment shadowCopyBinAssemblies="false" />
你只需刷新(F5)你的页面。
清理并再次构build。 它帮助我,它经常为我工作