26

自从升级到 Visual Studio 2013(从 2012 年开始)以来,我注意到在调试我的 ASP.NET MVC 5 应用程序时,我偶尔会通过 IIS Express 获得编译器错误转储:

说明:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:CS0042:创建调试信息文件 'c:\Users\Jeff\AppData\Local\Temp\Temporary ASP.NET Files\root\368a9040\83fb9039\App_global.asax.PDB' -- 'c:\ Users\Jeff\AppData\Local\Temp\Temporary ASP.NET Files\root\368a9040\83fb9039\App_global.asax.pdb:该进程无法访问该文件,因为它正被另一个进程使用。

源错误:

[没有相关的源代码行]

源文件:行:0

如果我打开 Process Explorer 然后搜索 App_global.asax.pdb 的句柄(DevEnv.exe 具有)并强制关闭它然后刷新页面,此错误就会消失。但是,这很不方便,我在 2013 年之前从未这样做过。

任何人都知道为什么这种情况会在 2013 年间歇性发生,但之前没有?

我能想到的唯一可能的事情是我使用的Razor Generator的 MSBuild 步骤存在一些晦涩的问题,但我不明白为什么它会出现在 App_Global.asax 而不是视图上(即使那样,它也应该'不要为未修改的视图编译)

4

2 回答 2

30

升级到 VS2013 后,我们在开发的一个大型 Web 表单应用程序上遇到了这个问题。我们通过从 Web.Config 文件的编译元素中删除 optimizeCompilations="true" 属性来解决它。

我还尝试了 VS2013 Update 1 和 VS2013 Update 2 RC,但它们都没有解决这个问题。

于 2014-04-18T00:11:29.543 回答
1

我不确定我们的问题是否相同,但我通过禁用“编辑并继续”为我解决了这个问题。

工具 -> 选项 -> 调试 -> 编辑并继续 -> 取消选中“启用编辑并继续”。

于 2013-12-23T13:51:30.830 回答