asp.netiis-7.5roslynaspnet-compiler

CodeDom provider can't be located after another application deployed


I had two web applications deployed in a site under IIS 7.5

site.com/myApp site.com/anotherMyApp

Now another devs deployed their app as root application

site.com/

Now when I access site.com/myApp or /anotherMyApp it throws:

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.

Source error :

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

Questions

Why is this happening?
Why is the "source error" in their application's webconfig and how does it affect my application?
How do I fix my applications without breaking theirs?

To clarify :


Solution

  • Your app inherits the config from its parent app, and your app doesn't have Microsoft.CodeDom.Providers.DotNetCompilerPlatform. That's why you see that error. There are several options.

    1. Override system.codedom setting in your web.config
    2. Install Microsoft.CodeDom.Providers.DotNetCompilerPlatform nupkg in your app