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

evi*_*ise 5 asp.net aspnet-compiler iis-7.5 roslyn

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

site.com/myApp site.com/anotherMyApp

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

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>
Run Code Online (Sandbox Code Playgroud)

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

问题

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

澄清 :

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

mat*_*fei 5

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

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