c# - 找不到 ASP.NET CodeDom 提供程序错误
问题描述
我在服务器上部署时遇到 ASP.NET 错误:
找不到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”。
此错误仅发生在特定服务器上,在本地或另一台服务器上执行时,它工作得很好。
packages.config CodeDom 行
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.0" targetFramework="net461" />
Web.Config CodeDom 行
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
解决方案
该项目很可能具有 Roslyn 参考,而您正在部署的 IIS 服务器不支持它。升级服务器或从项目中删除 Roslyn 编译器。移除 Roslyn 是非常安全的,不会影响任何事情。
要从项目中删除 Roslyn,请通过运行以下命令删除以下 Nuget 包:
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
或通过 Nuget GUI(右键单击项目 -> 管理 Nuget 包)
如果这没有帮助,请转到您的 Web.config 并删除以下配置并重新启动 IIS:
<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>
推荐阅读
- python - Python中的简单并行过程
- angular - 收到来自 api 的信息,{{value_expression}} 的页面上没有结果
- location - DocuSign SignHere 位置
- python - 在不使用 JQ 命令的情况下,在 linux 中以排列格式从文件中获取 JSON 值
- soap - 在空手道中模拟带有附件的 SOAP 请求
- javascript - 两个兄弟组件之间的数据传输问题(Vue js)
- java - spring中getWebApplicationContext()的参数问题
- css - 如何传递用户代理样式表 css
- python - Pandas Dataframes - 获取数据框的整体前 5 个值及其行和列标签,而不是按列或按行
- python - Pandas groupby 将重复的行拆分为列