You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019 ASP.NET模板项目开发环境正常,生产服务器运行报错

解决ASP.NET中等信任环境下CodeDom提供程序找不到的问题

问题根源

Visual Studio 2019创建的ASP.NET Web应用默认引用了Microsoft.CodeDom.Providers.DotNetCompilerPlatform包,用来支持C# 6及以上语法特性,但这个包的组件在中等信任级别服务器上要么未部署到位,要么因权限限制无法加载;再加上服务器.NET运行环境版本与开发环境依赖不匹配,就触发了找不到CodeDom类型的错误。

可行解决办法

1. 部署缺失的CodeDom组件到服务器bin目录

  • 在开发项目中确认Microsoft.CodeDom.Providers.DotNetCompilerPlatform和Microsoft.Net.Compilers两个NuGet包已安装,右键这两个引用,将「复制本地」设置为True,确保发布时文件会被打包。
  • 重新发布项目,检查服务器站点的bin目录,需包含以下内容:
    • Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll(对应报错的3.6.0.0版本)
    • Microsoft.Net.Compilers.dll
    • roslyn文件夹(内含编译器工具集)

2. 切换为.NET内置的CodeDom提供程序

如果项目未使用C# 6+新语法(如字符串插值、空值运算符等),直接修改web.config即可:

  • 找到web.config第55行附近的<compilers>配置块,替换为以下代码:
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs"
    type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    warningLevel="4">
    <providerOption name="CompilerVersion" value="v4.0"/>
    <providerOption name="WarnAsError" value="false"/>
  </compiler>
</compilers>
  • 同时删除web.config中关于Microsoft.CodeDom.Providers.DotNetCompilerPlatform的<dependentAssembly>绑定配置段。

3. 调整信任权限(需服务器操作权限)

若服务器管理员允许,可通过以下方式调整:

  • 在web.config的<system.web>节点下添加:
<trust level="Medium" originUrl="" />
  • 或请求管理员在服务器根web.config中为站点添加自定义信任策略,放开CodeDom相关权限。

内容的提问来源于stack exchange,提问作者marciojlb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:45:30