c# - IIS 7 找不到 Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL

标签 c# asp.net .net iis-7 c#-6.0

因此,当使用自定义构建配置部署我们的 Web 服务时,部署后出现错误:

The CodeDom provider type "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, could not be located.

尝试浏览网站时。查看 bin\~configurationName~ 文件夹,我可以很好地找到指定的 DLL。错误是在我的 web.config 中引用了这些行:

  <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>
  </system.codedom>

奇怪的是,在同一台服务器上为调试构建/部署时,我没有遇到这个问题,一切似乎都运行良好(这让我相信这个错误存在于我的项目配置中,而不是部署服务器) .出现此错误时我正在构建的配置是我们自定义的 QA 配置,它输出到 bin\QA,所以我想知道是否需要做一些特殊的事情才能让 ASP.NET 编译器查看特殊输出文件夹?

最佳答案

长期的部署解决方案是暂时避免使用 Roslyn。

问题是您在 IIS 上使用 Roslyn 编译器 和引用。 Roslyn 在许多部署服务器上仍未得到全面支持。

解决方案是删除 Roslyn,因为这不会影响项目功能!

我对另一个几乎与此类问题相关的问题写了类似的答案。看看我的回答https://stackoverflow.com/a/42668206/1436594

关于c# - IIS 7 找不到 Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37396591/

相关文章:

asp.net - 使用 Windows 身份验证注销 ASP.NET MVC 应用程序并能够使用同一用户再次登录

C# - 如果参数继承自接口(interface),则将字段值添加到 Controller 参数的中间件

.net - 项目中不存在目标 "_WPPCopyWebApplication"

c# SplashScreen Assembly Loaded 确实有效

c# - 错误 CS0103 : The name ' ' does not exist in the current context

c# - 使用 Find() 还是 Single() 从数据库中选择项目更好?

c# - 使用 ViewBag 的 Asp.net mvc 下拉列表

.net - 重载方法在 Resharper 中给出 "Method with optional parameter is hidden by overload"警告

c# - C# WPF 应用程序的测试框架

c# - 获取 CRM 实体名称的简便方法