CodeDom提供商无法在另一个部署的应用程序之后找到

时间:2016-05-11 12:45:17

标签: asp.net iis-7.5 roslyn aspnet-compiler

我在IIS 7.5下的站点中部署了两个Web应用程序

  

site.com/myApp   site.com/anotherMyApp

现在另一个开发者将他们的应用程序部署为根应用程序

  

site.com /

现在,当我访问site.com/myApp/anotherMyApp时,它会抛出:

  

CodeDom提供程序类型   " Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,   Microsoft.CodeDom.Providers.DotNetCompilerPlatform,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35"不可能   位于。

来源错误:

Line 54:   <system.codedom>
Line 55:     <compilers>
Line 56:       <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" />
Line 57:       <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+" />
Line 58:     </compilers>
  

源文件:C:\ inetpub \ wwwrootprettysite \ THEIR APPLICATION \ web.config

问题

为什么会这样? 为什么&#34;源错误&#34;在他们的应用程序的webconfig 中它是如何影响我的应用程序的? 如何在不破坏应用程序的情况下修复我的应用程序?

澄清:

  • 应用程序层次结构正确,其应用程序应为
    安装在root中。
  • 安装的.NET框架是4.5.2
  • 他们的应用程序使用的是在bin / roslyn
  • 中提供的Roslyn编译器
  • 我的应用程序web.configs没有<system.codedom>部分。

1 个答案:

答案 0 :(得分:5)

您的应用程序从其父应用程序继承配置,并且您的应用程序没有Microsoft.CodeDom.Providers.DotNetCompilerPlatform。这就是你看到错误的原因。有几种选择。

  1. 覆盖web.config中的system.codedom设置
  2. 在您的应用中安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform nupkg