NET VBCSCompiler.exe占用100%,造成项目卡顿的的解决方法

1)服务器环境 最低配 的window server 2008 r2, 配置低容易发现问题‘

2)事件描述 :项目打开缓慢,查询列表卡顿

3)问题分析:排除代码问题,

       ->打开服务器任务管理器

       ->找到性能,发现cpu100%, 内存正常 

       ->找到进程

      ->按cpu使用率排序 发现是一个 VBCSCompiler.exe的进程使用的

      ->打开所在路径,发现正是我们项目的部署bin/roslyn目录下。

4)他人解决方法:

         打开VBCSCompiler.exe.config文件编辑<add key="keepalive" value="600"/>将600改为6 但并不起效果,那么怎么办?

5)我的解决方法:

     1)打开项目配置文件 web.config  找到下图位置,删除。

     2)修改项目中涉及的6.0语法全部改成5.0版本的语法

     2)发布->验证bin/roslyn/下没有VBCSCompiler.exe 为正确, 或直接删除服务器 roslyn文件夹及下所有文件

     3)运行 问题解决  

6)解决思路:vs2015编译默认使用roslyn编译 也就是C#6.0,而以上截图的配置正是修改默认编译器的引用。

以上内容转载自:https://www.cnblogs.com/songjl/p/7530133.html   感谢作者。

我遇到的问题及解决方法:

服务器是最低配 的window server 2016 ,代码版本 4.5.2 使用 VS2017 / VS2015 协作开发的Asp.net MVC网站,有 以下两个nuget包

Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers

打开服务器的内存管理器查看 每一次新的查询,VBCSCompiler.exe的进程一直在飙升,最高超过90%。

解决方法:

不修改任何代码,执行下述步骤。

1.尝试了打开VBCSCompiler.exe.config文件编辑<add key="keepalive" value="600"/>将600改为6 但并不起效果。

2.采用了 https://stackoverflow.com/questions/33319675/the-codedom-provider-type-microsoft-codedom-providers-dotnetcompilerplatform-cs 提到的方法:
如果您的项目具有Roslyn参考,并且正在将其部署在IIS服务器上,则由于许多托管服务提供商仍未升级其服务器,因此不支持Roslyn,因此在网站上可能会出现不必要的错误。 若要解决此问题,您将需要从项目模板中删除Roslyn编译器。删除Roslyn不应影响代码的功能。对于我和其他我从事过的项目(C#4.5.2)来说,它工作正常。


请执行以下步骤:


1.使用下面显示的命令行从以下Nuget软件包中删除(或者您可以通过右键单击Root Project Solution并删除它们来使用Nuget软件包管理器的GUI)。

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers

2.从Web.Config文件中删除以下代码,然后重新启动IIS。 (仅在第1步不能解决你的问题,请使用此方法。) 我没有用到这一步,卸载Nuget包会自动删除配置文件中的节点。

<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=&quot;Web&quot; /optionInfer+" />
</compilers>

重新发布后
bin下面没有roslyn的文件夹,问题解决。
原文地址:https://www.cnblogs.com/riddly/p/11867304.html