在Visual Studio 2015中尝试运行web应用程序时,数百个MSBuild和ConHost实例生成并填充内存

在Visual Studio 2015中尝试运行web应用程序时,数百个MSBuild和ConHost实例生成并填充内存,msbuild,visual-studio-2015,Msbuild,Visual Studio 2015,为了提供一些背景资料,我曾经在VS2012上也有过这个问题。当我通过vs2012在IE上运行我的公司Web项目时,它会暂停一段时间,最终无法加载。我注意到我的机器基本上什么都做不了,几乎停了下来 检查任务管理器会发现生成了数百(如果不是数千)个MSBuild.exe和Conhost.exe实例,它们可能会填满所有可能的内存字节(机器上最多8 Gig)。我只有几个需要构建的解决方案 我从来没有发现真正的原因,但我相信VS2012的最终更新在几个月内遏制了这个问题 快进到今天,我现在在一台有16千兆

为了提供一些背景资料,我曾经在VS2012上也有过这个问题。当我通过vs2012在IE上运行我的公司Web项目时,它会暂停一段时间,最终无法加载。我注意到我的机器基本上什么都做不了,几乎停了下来

检查任务管理器会发现生成了数百(如果不是数千)个MSBuild.exe和Conhost.exe实例,它们可能会填满所有可能的内存字节(机器上最多8 Gig)。我只有几个需要构建的解决方案

我从来没有发现真正的原因,但我相信VS2012的最终更新在几个月内遏制了这个问题

快进到今天,我现在在一台有16千兆内存的机器上,现在运行的是VS2015 14.0.23107

我最近注意到无限繁殖MSBuild和Conhost的问题又出现了,这一次我的16 GB内存都被填满了

我尽可能多地在网上搜索,但我没有找到任何与我所经历的相似的话题

我知道这是microsoft的一项“功能”,如下所述:

和其他地方

但是,我所见过的任何人都没有出现过这样的问题:产生了如此多的MSBuild和Conhosts,以至于每一个字节的内存都被它们消耗掉,而您不得不重新启动计算机或等待它们全部消失(这似乎在任何特定的设定时间之后都不会发生)

最近发生这种情况时,我能想到的唯一环境变量是:

  • 我至少运行了两个VS2015实例
  • 我刚刚完成了修改和构建一个解决方案
  • 我在一个依赖于我刚才构建的上一个解决方案的解决方案上运行了我们的web应用程序
  • 还有其他人有这个问题吗?你找到原因了吗

    -编辑-

    更新:我不是100%的,如果这修复了它,但我没有得到它,因为我做了这些改变

    本质上,我们有两种不同的解决方案。它们非常相似,唯一的区别是其中一个的其他项目/依赖项要少得多

    我经常在这两个解决方案之间切换,并且我相信其中一个的解决方案配置已经检查了至少一个项目的“Debug with Extended Diagnostics”

    此外,我将构建选项设置为同时执行多达8个并行构建

    我们的devops经理认为,在混合了并行构建的解决方案之间进行某种切换可能会导致某种损坏/错误,从而导致数千个MSBuild


    此后,我们修复了“使用扩展诊断进行调试”的问题,并且我将构建选项更改为仅1个并行构建,并且从那时起就没有出现过此问题。

    有趣的是,我遇到了一个问题,即大量的MSBuild和conhost进程开始涌现,并耗尽了我所有的内存。在我的例子中,它与我的时区特性测试有关。我改变了我的操作系统时区,以测试/质量保证一个网络应用程序,这是出于某种原因的结果。Visual Studio的某些功能不喜欢实时更改时区。

    我正在测试web应用程序的时区相关功能,出现了此问题。我在调试会话之前、期间和之后在不同的时区之间切换
    taskkill/F/IM MSBuild.exe会将它们全部杀死,但它们在每次生成后都会重新出现。@A.Kostadinov是的,如果您更改回原来所在的时区或关闭Visual Studio并重新打开,我相信它会消失。当VS打开时,任何时区的改变似乎都会引起问题。完全一样的事情发生在我身上。我也有同样的事情。也在测试时区变化Hanks,我在移动时区后看到了这一点。我不得不重新启动机器以清除现有的。