asp.net - 部署另一个应用程序后无法定位 CodeDom 提供程序

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

我在 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 中出现“源错误”,它如何影响我的应用程序?
如何在不破坏应用程序的情况下修复我的应用程序?


澄清 :
  • 应用层级是正确的,它们的应用应该是
    安装在根。
  • 安装的 .NET 框架是 4.5.2
  • 他们的应用程序使用的是在 bin/roslyn 中提供的 Roslyn 编译器
  • 我的应用程序 web.configs 没有 <system.codedom>部分。
  • 最佳答案

    您的应用从其父应用继承配置,并且您的应用没有 Microsoft.CodeDom.Providers.DotNetCompilerPlatform。这就是为什么您会看到该错误。有几种选择。

  • 覆盖 web.config 中的 system.codedom 设置
  • 在您的应用中安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform nupkg
  • 关于asp.net - 部署另一个应用程序后无法定位 CodeDom 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37163108/

    相关文章:

    asp.net - 使用 Coldfusion 7 中的 WCF 服务

    c# - Javascript QueryString 到 c#

    iis-7.5 - 安装应用程序请求路由时出错

    asp.net - 是否需要授予应用程序池身份对Web文件夹的读取权限?

    c# - Roslyn 中的 VisitClassDeclaration node.Identifier

    c# - 如何最好地在 Web api 和客户端之间显示格式化属性

    https - 解决 AS2 连接问题 - TLS 握手后发送 TCP RST

    .net-core - 如何在 Blazor WebAssembly 中使用 Roslyn 创建 CSharpCompilation?

    c# - 使用 ? 时出现编译器错误。导致无法通过 PEVerify 的不良图像

    asp.net - 托管在 Windows 容器中的应用程序的 Windows 身份验证