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

CodeDom provider can't be located after another application deployed

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

site.com/myApp site.com/anotherMyApp

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

site.com/

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

The CodeDom provider type "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" could not be located.

来源错误:

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>

Source File: C:\inetpub\wwwrootprettysite\THEIR APPLICATION\web.config

问题

为什么会这样?
为什么 他们应用程序的 webconfig 中的 "source error" 以及它如何影响我的应用程序?
如何在不破坏应用程序的情况下修复我的应用程序?

澄清:

您的应用继承了其父应用的配置,并且您的应用没有Microsoft.CodeDom.Providers.DotNetCompilerPlatform。这就是您看到该错误的原因。有几个选项。

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