繁体   English   中英

IIS 7无法找到Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL

[英]IIS 7 unable to find Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL

因此,在使用自定义构建配置部署Web服务时,部署后我会收到错误:

无法找到CodeDom提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform”。

在尝试浏览网站时。 查看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>

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

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

问题是您在IIS上使用Roslyn编译器和引用。 Roslyn仍然没有在许多部署服务器上获得完全支持。

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

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

所以这是因为我在一个具有配置名称的文件夹下嵌套了站点的所有程序集,就像在控制台/ windows应用程序中那样(例如'bin \\ Debug')。 对于Web应用程序,程序集不会嵌套在config文件夹下(例如,它们应该放在'bin'中)。

希望这有助于他人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM