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="Web" /optionInfer+" /> </compilers>
重新发布后
bin下面没有roslyn的文件夹,问题解决。